gpt4 book ai didi

regex - xregexp 有不同的结果

转载 作者:搜寻专家 更新时间:2023-10-30 21:13:24 26 4
gpt4 key购买 nike

我想用规则验证字符串:

  • 字符串必须至少包含一个字母
  • 字符串只能包含那些符号(但不是必须的):' , - , ( , )
  • 如果字符串中存在一个符号,它还必须包含一个字母(至少一个第一个项目符号)
  • 不允许只有符号

到目前为止,我已经想出了以下正则表达式:

    static personName = XRegExp.cache("^[\\s\\p{L}\\'\\-\\(\\)]+(?=\\S*\\p{L})\\S+$");

这不能正常工作。只有 "^(?=\\S*\\p{L})\\S+$" 这对字母有帮助,我很难理解如何向它添加符号以便所有规则都将被通过了,我做错了什么?

最佳答案

如果您允许的字符仅限于您可以使用的枚举

var regex = XRegExp("^[\\s'()-]*\\p{L}[\\s\\p{L}'()-]*$"); 

如果你想允许任何字符但只是符号的一个子集,使用“至少 1 个字母”限制

var regex = XRegExp("^[\\p{N}\\s'()-]*\\p{L}[\\p{L}\\p{N}\\s'()-]*$"); 

查看 JS 演示:

var regex = XRegExp("^[\\s'()-]*\\p{L}[\\s\\p{L}'()-]*$");
console.log( regex.test("Sóme (unknown-string) doesn't like it") );

var regex = XRegExp("^[\\p{N}\\s'()-]*\\p{L}[\\p{L}\\p{N}\\s'()-]*$");
console.log( regex.test("Sóme unknown-string (123)") );
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min.js"></script>

详情

  • ^ - 字符串的开始
  • [\\s'()-]* - 0 个或多个空格,', (, )- 字符
  • [\\p{N}\\s'()-]* - 0 个或多个数字、空格和允许的符号
  • \\p{L} - 一个字母
  • [\\s\\p{L}'()-]* - 0 个或多个空格、字母、'(, )- 字符
  • [\\p{L}\\p{N}\\s'()-]* - 0 个或多个字母、数字、空格和允许的符号
  • $ - 字符串结尾。

关于regex - xregexp 有不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55177849/

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