2010-09-19 263 views
1

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

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

我刚刚一直在使用这个作为一个什么样的用户可能需要在此形式接收机类

是6到12个字符长,并且 排除“之间的串 密码字段的例子\”, “#”, “$”, “`”

我曾尝试:

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

其中没有一个反斜杠工作我无法弄清楚为什么。 FYI:后者在PHP中运行良好。

回答

3

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

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

+0

啊天啊我是小白。我应该先在那里检查!谢谢你的帮助。 – User123342234 2010-09-19 02:38:11

+0

感谢@Matthew Flaschen捕捉我没有的东西:|/facepalm – jcolebrand 2010-09-19 02:53:50

+0

这不是你。这是StackOverflow的渲染器中的一个奇怪的错误。 – 2010-09-19 02:59:33

1

看起来你已经创建斜线散列美元滴答的分组,而不是找任何这些字符的直撕开。

试试这个

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

感谢您的帮助,但它不是分组。就是因为我用引号封装,所以要么丢掉引号,要么逃脱为“\\\\”。感谢你的帮助。 (S.O.只是不让我选择一个答案呢,S) – User123342234 2010-09-19 02:47:15

相关问题