如何检查字符串是否包含以下字符:
字母(小写/大写)
数字
空间
逗号 ( , )
句号 ( . )
括号( )
&
'
$
+(加)减(-)(*)(=)算术运算符
- /
在 ColdFusion 中使用正则表达式?
我想确保字符串不包含指定以外的单个字符。
如何检查字符串是否包含以下字符:
字母(小写/大写)
数字
空间
逗号 ( , )
句号 ( . )
括号( )
&
'
$
+(加)减(-)(*)(=)算术运算符
在 ColdFusion 中使用正则表达式?
我想确保字符串不包含指定以外的单个字符。
您可以查找是否有任何无效字符,如下所示:
<cfif refind( "[^a-zA-Z0-9 ,.&'$()\-+*=/]" , Input ) >
<!--- invalid character found --->
</cfif>
[
...]
是一个字符类(匹配内部的任何单个字符),并且^
开头的意思是“NOT” - 即如果它找到任何不是可接受的字符,它返回true 。
我不明白“小括号(开闭)”,但猜你的意思是<
那里>
?如果你想要()
或者{}
只是交换它们。因为[]
您需要将它们作为\[\]
字符类转义
在字符类中,只有少数字符需要用反斜杠转义,它们是:
\
- 如果您想要文字反斜杠,请将其转义。^
- 如果插入符号是第一个字符,则必须对其进行转义,否则它会否定类。-
- 破折号创建一个范围。它必须被转义,除非第一个/最后一个(但建议总是这样)[
和]
- 两个括号都应该被转义。ColdFusion 使用 Java 的引擎来解析正则表达式,无论如何要确保字符串不包含您提到的字符之一,然后尝试:
^(?![a-zA-Z0-9 ,.&$']*[^a-zA-Z0-9 ,.&$']).*$
仅当您逐行解析文件时,上述表达式才有效。如果要将其应用于包含多行的文本,则需要使用 global 修饰符和 multi-line 修饰符并将表达式更改如下:
^(?![a-zA-Z0-9 ,.&$']*[^a-zA-Z0-9 ,.&$'\r\n]).*$
正则表达式:
[^][a-zA-Z0-9 ,.&'$]
如果字符串包含列表中的字符以外的任何字符,则将匹配。