代码之家  ›  专栏  ›  技术社区  ›  Paolo Broccardo

Coldfusion正则表达式问题

  •  4
  • Paolo Broccardo  · 技术社区  · 14 年前

    我目前有一个coldfusion正则表达式,它检查字符串是否是字母数字。 我想打开一点,允许更多的句点和下划线字符。我该如何修改它以允许这样做?

    <cfset isValid= true/>
    <cfif REFind("[^[:alnum:]]", arguments.stringToCheck, 1) GT 0>
     <cfset isValid= false />
    </cfif>
    

    谢谢

    3 回复  |  直到 14 年前
        1
  •  3
  •   Jason Dean    14 年前

    这样就可以了。

    <cfset isValidString= true/>
        <cfif REFind("[^[:alnum:]_\.]", arguments.stringToCheck, 1) GT 0>
        <cfset isValidString= false />
    </cfif>
    

    对于变量名使用“isValid”也不是一个很好的做法。它是ColdFusion中函数的名称,有一天可能会引起问题。

        2
  •  4
  •   Peter Boughton    14 年前

    不需要cfif-这里有一个简洁的方法:

    <cfset isValidString = NOT refind( '[^\w.]' , Arguments.StringToCheck )/>
    


    <cfset isValidString = refind( '^[\w.]*$' , Arguments.StringToCheck ) />
    

    (要防止空字符串,请更改 * + )

    此方法可以更容易地应用其他约束(例如,必须以字母开头等),并且是一种更直接的方式来表示原始检查。

    请注意 ^ 这里有一个锚,意思是“行/字符串的开始”(带有 $ more information here

        3
  •  0
  •   Masterbuddha    14 年前

    这对你有用吗?

    refind("[\w\d._]","1234abcd._")