簡體   English   中英

JavaScript正則表達式 - 必須至少包含UTF-8中的任何2個字母

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

現在,我正在嘗試使用以下條件創建JavaScript正則表達式:

  • 接受所有UTF-8字符
  • 允許單詞之間的空格,如何只有1個空格而不是多個空格。
  • 允許所有符號例如:!#$%^&*()_- = {} []除外:“@”
  • 字符串之后或之前沒有尾隨空格。
  • 范圍應為2-16個字符,包括空格
  • 並且字符串中必須包含至少2個字母的字符。

這是我到目前為止制定的正則表達式:

/^(?![^@]*@)(?![^]*\\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個符號,字符串的開頭和結尾沒有空格。
  • $ - 結束字符串

請參閱正則表達式演示

 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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM