javascript - 西里尔字母正则表达式+最少 3 个字母+没有数字和空格+末尾不可重复

标签 javascript regex xregexp

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

相关文章:

java - 正则表达式检查字母表中的所有字母

具有多个可能选项的正则表达式

javascript - 如何使用全词正则表达式搜索梵文文本?

javascript - 在 Apache 服务的页面中使用 Socket.io

javascript - 在AngularJS中按两级分层组织对象

javascript - 使用 ajax 调用提交表单后 Bootstrap Modal 未关闭?

javascript - 如何使用onChange()函数进行排序?

javascript - 无法将 search() 与可变模式一起使用

javascript - C# 正则表达式在 Javascript 中不起作用

regex - xregexp 有不同的结果