2

我在当前的 Web 应用程序中确实有以下 RegExp。

function myCyrillicDigitsAndSpaceValidator(text){
    return XRegExp("^[\\p{Cyrillic}0-9]+").test(text);
}

如您所见,我使用 XRegExp javasciprt 库。目前,这个 regxep 检查它的西里尔字母+有空格+有数字。我想扩展它并检查:

是西里尔文

它确实有空间

它确实有数字

它确实有特殊字符

XregxExp version is 2.0.0 if it does matter

正确的例子:

1 Май

-

Май 25\5
4

2 回答 2

0

您可以简单地将任何特殊字符和您希望的其他字符添加到您已有的列表中,例如:

^[\\p{Cyrillic}0-9#$%^&\-\s\\]+$

或者

([\\p{Cyrillic}0-9\\s\-#$%^&\\]+)

演示

在此处输入图像描述

正则表达式

如果不需要此表达式,可以在regex101.com中对其进行修改或更改。

正则表达式电路

jex.im还有助于将表达式可视化。

在此处输入图像描述

于 2019-05-21T05:31:55.793 回答
0

为此,您可以尝试使用积极的前瞻。考虑以下正则表达式模式:

^(?=.* )
 (?=.*\d)
 (?=.*[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/])
 (?=.*[\p{Cyrillic}])
 [ \d-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/\p{Cyrillic}]+
$

这按顺序断言空格、数字、符号和西里尔字符都出现在输入中。然后,它匹配这四类字符中的一个或多个。

您更新的代码:

function myCyrillicDigitsAndSpaceValidator(text){
    return XRegExp("^(?=.* )(?=.*\\d)(?=.*[-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/])(?=.*[\\p{Cyrillic}])[ \\d-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/\\p{Cyrillic}]+$").test(text);
}
于 2019-05-21T05:33:46.653 回答