正则表达式,用于匹配西里尔字母,数字,空格和一些特殊字符(-\,:

时间:2019-05-21 05:27:50

标签: javascript regex regex-lookarounds regex-group xregexp

我在当前的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

2 个答案:

答案 0 :(得分:0)

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

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

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

DEMO

enter image description here

RegEx

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

RegEx电路

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

enter image description here

答案 1 :(得分:0)

为此,您可以尝试使用正向前行。考虑以下正则表达式模式:

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

这断言,输入中均出现空格,数字,符号和西里尔字母。然后,它匹配这四种字符中的一种或多种。

您更新的代码:

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