gpt4 book ai didi

JavaScript 正则表达式 - 必须至少包含 UTF-8 中的任意 2 个字母

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:29:39 25 4
gpt4 key购买 nike

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

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

这是我目前制定的正则表达式:

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

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

"..He"//应该是真的

"He$*"//应该是真的

".."//应该是假的

"*%"//应该是假的

"!#$%^&*()"//应该是假的,因为没有字母

"$$tonyMoney™"//应该是真的

"أنا أحب جاو™"//应该是真的

"To"//应该为真

感谢任何帮助!谢谢!

最佳答案

你可以使用这个基于 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 demo

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>

关于JavaScript 正则表达式 - 必须至少包含 UTF-8 中的任意 2 个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34141921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com