1

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

function myCyrillicValidator(text){
    return XRegExp("^\\p{Cyrillic}+$").test(text);
}

如您所见,我使用XRegExpjavasciprt 库。目前,这regxep会检查它是否cyrillic. 我想扩展它并检查:

  • 是西里尔文
  • 至少3个字母
  • 它没有空间
  • 最后一个字母不重复,即 Gabenn <- 是错误的,Moneyy <- 是错误的,因为最后 2 个字母是重复的
  • 第一个字母是大写

我尝试了一些在线RegExp测试器/构建器来构建当前规则。但他们都没有向我表明当前regexp工作正常。但令人惊讶的是,它在 webapp 中工作,而不是在在线测试人员中。

XregxExp如果重要,版本是 2.0.0

4

1 回答 1

2

使用以下正则表达式:

XRegExp("^(?=\\p{Lu})(?!.*(.)\\1$)\\p{Cyrillic}{3,}$")

请参阅正则表达式演示

详情

  • ^- 字符串锚的开始
  • (?=\\p{Lu})- 第一个字母必须是大写字母
  • (?!.*(.)\\1$)- 字符串不应以 2 个相同的字符结尾
  • \\p{Cyrillic}{3,}- 字符串应仅包含 3 个或更多西里尔字母
  • $- 字符串锚的末端

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>

于 2017-03-22T09:19:10.447 回答