RegExp for Cyrillic +最少3个字母+没有数字和空格+最后不可重复

时间:2017-03-22 09:02:05

标签: javascript regex xregexp

我在当前的网络应用程序中有以下RegExp

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

如您所见,我使用XRegExp javasciprt库。目前,此regxep会检查其cyrillic。我想扩展它并检查:

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

我尝试了几个在线RegExp测试人员/构建器,以构建当前规则之上。但他们都没有告诉我当前的regexp工作正常。但令人惊讶的是,它在webapp中工作,而不是在线测试人员。

如果重要,

XregxExp版本为2.0.0

1 个答案:

答案 0 :(得分:2)

使用以下正则表达式:

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

请参阅regex demo

<强>详情:

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

&#13;
&#13;
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
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-all-min.js"></script>
&#13;
&#13;
&#13;