用最小长度和新行验证Regex

Validate Regex with minimum length and new line

本文关键字:新行 验证 Regex      更新时间:2023-09-26

我正在尝试匹配长度> 10的字符串

var value = "Lorem Ipsum is simply dummy text of the printing and type";
/^.{10,}$/.test(value);

返回true;

但是,如果我有一个带有新行字符的字符串,那么它就失败了。

如何更新正则表达式来解决这个问题

我知道我可以检查。length> 10或者用空格替换新行。但是,我想更新正则表达式。

JavaScript没有dot matches newlines的原生选项。为了解决这个问题,使用不同的选择器:

['S's]

匹配任何WhitespaceNon-Whitespace字符。

var s = "some'ntext'n",
    r = /^['S's]{10,}$/;
console.log(r.test(s));

还有,必不可少的小提琴:http://jsfiddle.net/kND83/

有一些库,如http://xregexp.com/,为dot matches newlines添加选项,但它们所做的只是在['S's]中为您的Regex中的.添加选项。

如果你只是测试长度,你应该使用.length。如果坚持使用regex,点实际上匹配除了换行符以外的所有内容。您可以通过搜索's'S来更改此设置:

(['s'S]{10,})

匹配任何空白和任何非空白,覆盖整个范围。遗憾的是,js regex不支持s修饰符

^$在匹配中指定一行的开始和结束。只要去掉它们,你就会得到答案。哦,你需要m开关来传递换行符。

var r = /.{10,}/m;
r.test(value);