我有这个来验证textarea。
这是exp:
var desExp = /^\s*(\w[^\w]*){3}.*$/;
在一行上输入“非常好的汽车”时,这样可以正常工作。
但是当输入如下几行时:
Got receipt. Brand new! // new line here
Shipping included. // new line here
0704-256568
我认为错误出现是因为它不喜欢'进入'或'新线'。 如果是这样,这必须包含在正则表达式中!
这会产生错误,因为它与表达式不匹配。 有谁可以告诉我为什么它不匹配?
由于
答案 0 :(得分:4)
将其var desExp = /^\s*(\w[^\w]*){3}.*$/gm;
注意最后的g
和m
选项会使正则表达式变为全局和多行..
答案 1 :(得分:0)
所有浏览器都不支持Newline正则表达式。
根据您的目标浏览器,您可以添加多行模式(不支持任何地方)
/^\s*(\w[^\w]*){3}.*$/m
另一种选择是用唯一的字符串替换新行,运行正则表达式然后替换唯一的字符串
str = str.replace(/\n/g,'xxxStringxxx')
// Do regex
str = replace(/xxxStringxxx/g,'\n');