如何检查字符串是否包含 以外的字符:
字母(洛韦-案例/大写)
位
空间
逗号(,)
期间(。)
支架( )
&安培;
$
+ (加)减去( - )( * )( = )算术运算符
在ColdFusion中使用正则表达式?
我想确保一个字符串除了指定的字符之外不包含任何单个字符。
答案 0 :(得分:5)
你可以找到是否有这样的无效字符:
<cfif refind( "[^a-zA-Z0-9 ,.&'$()\-+*=/]" , Input ) >
<!--- invalid character found --->
</cfif>
[
... ]
是一个字符类(匹配来自内部的任何一个字符),并且开头的^
表示“NOT” - 即如果它找到任何不是被接受的字符的东西,它都会返回true。
我不明白“小括号(开幕式)”,但您猜是指<
和>
?如果您希望()
或{}
将它们交换掉。对于[]
,您需要将其作为\[\]
字符类转义
在字符类中,只有少数字符需要使用反斜杠转义,这些是:
\
- 如果你想要一个文字反斜杠,请逃避它。^
- 如果它是第一个字符,则必须转义插入符号,否则它会否定该类。-
- 破折号创建范围。它必须被转义,除非第一个/最后一个(但建议总是如此)[
和]
- 两个括号都应该转义。答案 1 :(得分:1)
ColdFusion使用Java的引擎来解析正则表达式,无论如何要确保字符串不包含您提到的其中一个字符,然后尝试:
^(?![a-zA-Z0-9 ,.&$']*[^a-zA-Z0-9 ,.&$']).*$
只有在逐行解析文件时,上述表达式才有效。如果要将其应用于包含多行的文本,则需要使用全局修饰符和多行修饰符,并将表达式更改为:
^(?![a-zA-Z0-9 ,.&$']*[^a-zA-Z0-9 ,.&$'\r\n]).*$
答案 2 :(得分:0)
正则表达式:
[^][a-zA-Z0-9 ,.&'$]
如果字符串包含列表中的字符以外的任何字符,将匹配。