JavaScript Regex-必须至少包含UTF-8中的任何2个字母

JavaScript Regex - Must contain at least any 2 letter in UTF-8

本文关键字:任何 2个 UTF-8 包含 Regex- JavaScript      更新时间:2023-09-26

现在,我正在尝试创建一个具有以下条件的JavaScript正则表达式:

  • 接受所有UTF-8字符
  • 单词之间允许有空格,如何只有1个空格而不能有多个空格
  • 允许所有符号,例如:!#$%^&()_-={}[]除了:"@"
  • 字符串后面或前面没有尾随空格
  • 范围应为2-16个字符,包括空格
  • 并且字符串中必须至少包含2个字母字符

以下是我迄今为止制定的Regex:

/^(?![^@]*@)(?![^]*'s's)'S[^]{0,14}'S$/

到目前为止,它完成了以下所有操作,除了它不满足最后一个条件,即它必须包含至少2个字母。例如:

"..He" //should be true

"He$*" //should be true

".." //should be false

"*%" //should be false

"!#$%^&*()" //should be false since there is no letters

"$$tonyMoney™" //should be true

"أنا أحب جاف™" //should be true

"To" //should be true

感谢您的帮助!非常感谢。

您可以使用这个基于XRegExp的正则表达式:

var rx = XRegExp("^(?![^@]*@)(?![^]*''s''s)(?=(?:''P{L}*''p{L}){2})''S[^]{0,14}''S$");

正则表达式分解:

  • ^-字符串启动
  • (?![^@]*@)-字符串中没有@
  • (?![^]*''s''s)-没有两个连续空格
  • (?=(?:''P{L}*''p{L}){2})-至少2个Unicode字母
  • ''S[^]{0,14}''S-长度为2到16个符号,字符串的开头和结尾没有空格
  • $-字符串末尾

查看regex演示

var rx = XRegExp("^(?![^@]*@)(?![^]*''s''s)(?=(?:''P{L}*''p{L}){2})''S[''s''S]{0,14}''S$");
document.body.innerHTML = rx.test("..He") + " - must be true<br/>";
document.body.innerHTML += rx.test("He$*") + " - must be true<br/>"; 
document.body.innerHTML += rx.test("..") + " - must be false<br/>"; 
document.body.innerHTML += rx.test("*%") + " - must be false<br/>"; 
document.body.innerHTML += rx.test("!#$%^&*()") + " - must be false<br/>"; 
document.body.innerHTML += rx.test("$$tonyMoney™") + " - must be true<br/>"; 
document.body.innerHTML += rx.test("To") + " - must be true<br/>"; 
document.body.innerHTML += rx.test("أنا أحب جاف™") + " - must be true<br/>";
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-all-min.js"></script>

相关文章: