Javascript 使用最小长度和新行验证正则表达式
我正在尝试匹配长度>10的字符串Javascript 使用最小长度和新行验证正则表达式,javascript,Javascript,我正在尝试匹配长度>10的字符串 var value = "Lorem Ipsum is simply dummy text of the printing and type"; /^.{10,}$/.test(value); 返回true 但是,如果我有一个具有新行字符的字符串,那么它将失败 如何更新正则表达式以修复此问题 我知道我可以检查。长度>10或用空格替换新行。但是,我想更新正则表达式。^和$要求在匹配中指定行的开头和结尾。只要去掉它们,你就会得到答案。哦,你需要m开关来传递换行符
var value = "Lorem Ipsum is simply dummy text of the printing and type";
/^.{10,}$/.test(value);
返回true
但是,如果我有一个具有新行字符的字符串,那么它将失败
如何更新正则表达式以修复此问题
我知道我可以检查。长度>10或用空格替换新行。但是,我想更新正则表达式。
^
和$
要求在匹配中指定行的开头和结尾。只要去掉它们,你就会得到答案。哦,你需要m
开关来传递换行符
var r = /.{10,}/m;
r.test(value);
^
和$
强制要求在匹配中指定行的开头和结尾。只要去掉它们,你就会得到答案。哦,你需要m
开关来传递换行符
var r = /.{10,}/m;
r.test(value);
如果只是测试长度,则应使用
.length
。如果你坚持使用正则表达式,那么除了换行符外,点实际上与所有内容都匹配。您可以通过搜索\s\s
来更改此设置:
([\s\s]{10,})
它匹配任何空白和任何非空白,覆盖整个频谱。遗憾的是,js regex不支持
s
修饰符。如果只是测试长度,那么应该使用.length
。如果你坚持使用正则表达式,那么除了换行符外,点实际上与所有内容都匹配。您可以通过搜索\s\s
来更改此设置:
([\s\s]{10,})
它匹配任何空白和任何非空白,覆盖整个频谱。遗憾的是,js regex不支持
s
修饰符。JavaScript没有用于点匹配新行的本机选项。要解决此问题,请使用不同的选择器:
[\S\s]
这将匹配任何空白
或非空白
字符
var s = "some\ntext\n",
r = /^[\S\s]{10,}$/;
console.log(r.test(s));
还有,必须的小提琴:
有一些库,例如,为点匹配新行添加选项,但它们所做的只是为正则表达式中的
添加子项[\S\S]
。JavaScript没有用于点匹配新行的本机选项。要解决此问题,请使用不同的选择器:
[\S\s]
这将匹配任何空白
或非空白
字符
var s = "some\ntext\n",
r = /^[\S\s]{10,}$/;
console.log(r.test(s));
还有,必须的小提琴:
有一些库,例如,为点匹配换行符添加选项,但它们所做的只是在Regex中[\S\S]
中为
添加子项。为什么要坚持使用Regex?你自己说过有一个更简单的方法way@Utkanos中的正则表达式用于在服务器上进行验证,而我并没有控制权。所以,我不想用更简单的方式在JavaScript中修复它。为什么你坚持使用正则表达式呢?你自己说过有一个更简单的方法way@Utkanos中的正则表达式用于在服务器上进行验证,而我并没有控制权。所以,我不想用更简单的方式在JavaScript中修复它,这是行不通的。圆点与新行不匹配m
也不起作用,因为点与新行不匹配。这不起作用。圆点与新行不匹配m
也不起作用,因为点与新行不匹配