为什么这个regExp不工作?

时间:2010-02-21 13:31:52

标签: javascript html forms validation

我有这个来验证textarea。

这是exp:

  var desExp = /^\s*(\w[^\w]*){3}.*$/;

在一行上输入“非常好的汽车”时,这样可以正常工作。

但是当输入如下几行时:

Got receipt. Brand new! // new line here
Shipping included. // new line here
0704-256568

我认为错误出现是因为它不喜欢'进入'或'新线'。 如果是这样,这必须包含在正则表达式中!

这会产生错误,因为它与表达式不匹配。 有谁可以告诉我为什么它不匹配?

由于

2 个答案:

答案 0 :(得分:4)

将其var desExp = /^\s*(\w[^\w]*){3}.*$/gm;

注意最后的gm选项会使正则表达式变为全局和多行..

答案 1 :(得分:0)

所有浏览器都不支持Newline正则表达式。

根据您的目标浏览器,您可以添加多行模式(不支持任何地方)

/^\s*(\w[^\w]*){3}.*$/m

另一种选择是用唯一的字符串替换新行,运行正则表达式然后替换唯一的字符串

str = str.replace(/\n/g,'xxxStringxxx')
// Do regex
str = replace(/xxxStringxxx/g,'\n');