2

如何检查字符串是否包含以下字符

  • 字母(小写/大写)

  • 数字

  • 空间

  • 逗号 ( , )

  • 句号 ( . )

  • 括号( )

  • &

  • '

  • $

  • +(加)减(-)(*)(=)算术运算符

  • /

在 ColdFusion 中使用正则表达式?

我想确保字符串不包含指定以外的单个字符。

4

3 回答 3

5

您可以查找是否有任何无效字符,如下所示:

<cfif refind( "[^a-zA-Z0-9 ,.&'$()\-+*=/]" , Input ) >

    <!--- invalid character found --->

</cfif>

[...]是一个字符类(匹配内部的任何单个字符),并且^开头的意思是“NOT” - 即如果它找到任何不是可接受的字符,它返回true 。

我不明白“小括号(开闭)”,但猜你的意思是<那里>?如果你想要()或者{}只是交换它们。因为[]您需要将它们作为\[\]


字符类转义

在字符类中,只有少数字符需要用反斜杠转义,它们是:

  • \- 如果您想要文字反斜杠,请将其转义。
  • ^- 如果插入符号是第一个字符,则必须对其进行转义,否则它会否定类。
  • -- 破折号创建一个范围。它必须被转义,除非第一个/最后一个(但建议总是这样)
  • []- 两个括号都应该被转义。
于 2013-09-10T17:16:53.937 回答
1

ColdFusion 使用 Java 的引擎来解析正则表达式,无论如何要确保字符串不包含您提到的字符之一,然后尝试:

^(?![a-zA-Z0-9 ,.&$']*[^a-zA-Z0-9 ,.&$']).*$

仅当您逐行解析文件时,上述表达式才有效。如果要将其应用于包含多行的文本,则需要使用 global 修饰符和 multi-line 修饰符并将表达式更改如下:

^(?![a-zA-Z0-9 ,.&$']*[^a-zA-Z0-9 ,.&$'\r\n]).*$

正则表达式 101 演示

于 2013-09-10T15:46:03.407 回答
0

正则表达式:

[^][a-zA-Z0-9 ,.&'$]

如果字符串包含列表中的字符以外的任何字符,则将匹配。

于 2013-09-10T16:05:07.717 回答