在Javascript正则表达式中排除文字反斜杠

时间:2010-09-19 02:31:27

标签: php javascript regex

我正在编写一个带有客户端和服务器端验证的php表单类。我在检查字符串中是否存在使用javascript中的正则表达式的字面反斜杠(“\”)时遇到问题。

我想回避除使用正则表达式之外的其他解决方案,因为这会减少php和js之间的特殊情况,并减少我需要写入的条件代码的数量。

我刚刚将此作为用户在此表单类中可能需要的示例 -

  

作为字符串的密码字段   6到12个字符之间的长度和那个   排除“\”,“#”,“$”,“`”

我试过了:

^[^(\u0008#\$`)]{6,12}$
^[^(\b#\$`)]{6,12}$
^[^(\\#\$`)]{6,12}$

他们都没有为反斜杠工作,我无法理解为什么。仅供参考:后者在PHP中运行良好。

2 个答案:

答案 0 :(得分:3)

正则表达式\\匹配单个反斜杠。在JavaScript中,这会变为re = /\\/re = new RegExp("\\\\")

http://www.regular-expressions.info/javascript.html

直接撕开

答案 1 :(得分:1)

看起来你已经创建了一个slash-hash-dollar-tick分组,而不是寻找任何这些字符。

试试这个

var rgx = new RegExp(/^[^\\#\$`]{6,12}$/);