我在当前的 Web 应用程序中确实有以下 RegExp
。
function myCyrillicValidator(text){
return XRegExp("^\\p{Cyrillic}+$").test(text);
}
如您所见,我使用了 XRegExp
javasciprt 库。目前,这个 regxep
检查它的 cyrillic
。我想扩展它并检查:
- 它是西里尔文
- 至少3个字母
- 没有空间
- 最后的字母不重复,即 Gabenn <- 是错误的,Moneyy <- 是错误的,因为最后 2 个字母是重复的
- 首字母大写
我尝试了一些在线 RegExp
测试人员/构建人员来构建当前规则之上。但是他们都没有告诉我当前的 regexp
工作正常。但令人惊讶的是,它在 webapp 中工作,但在在线测试器中不起作用。
XregxExp
如果重要的话,版本是 2.0.0
最佳答案
使用以下正则表达式:
XRegExp("^(?=\\p{Lu})(?!.*(.)\\1$)\\p{Cyrillic}{3,}$")
参见 regex demo .
详细信息:
^
- 字符串 anchor 的开始(?=\\p{Lu})
- 第一个字母必须是大写(?!.*(.)\\1$)
- 字符串不应以 2 个相同的字符结尾\\p{Cyrillic}{3,}
- 字符串应仅包含 3 个或更多西里尔字母$
- 字符串 anchor 的结尾
function myCyrillicValidator(text){
return XRegExp("^(?=\\p{Lu})(?!.*(.)\\1$)\\p{Cyrillic}{3,}$").test(text);
}
console.log(myCyrillicValidator("Ва")); // => false
console.log(myCyrillicValidator("вася")); // => false
console.log(myCyrillicValidator("Васяя")); // => false
console.log(myCyrillicValidator("Вася")); // => true
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-all-min.js"></script>
关于javascript - 西里尔字母正则表达式+最少 3 个字母+没有数字和空格+末尾不可重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42946903/