正则表达式修改

时间:2014-06-05 04:16:19

标签: regex

我正在使用REGEX并尝试匹配以下条件:

  • 应符合a-z, A-Z, 0-9
  • !@#$^*_=[]/|\,.?: -允许
  • <>{}"'%;()&+不允许

并且在此过程中我提出了以下正则表达式,但在某些情况下,它失败了。

/^(?=[a-zA-Z0-9~!@#$^*_=[\/]|\\,.?: -]*$)(?!.*[<>{}"'%;()&+])/

如果有专家可以根据需要验证和修改相同内容,我们将不胜感激。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

如果您知道允许的内容,则无需列出允许的内容。只需将其表示为允许的字符的字符类:

/^[a-zA-Z0-9~!@#$^*_=[\/]|\\,.?: -]*$/

答案 1 :(得分:1)

对我来说,看起来你需要这样的东西:

if (/^[\w~!@#$^*=[\]\/|\\,.?: -]$/.test(subject)) {
    // Successful match
} else {
    // Match attempt failed
}
  1. 在JavaScript中,\w将匹配任何ASCII字母,数字或下划线(更紧凑)。
  2. 您需要注意的两个字符是]\,它们都需要通过反斜杠进行转义。