gpt4 book ai didi

javascript - 正则表达式模式不允许除下划线外的特殊字符

转载 作者:行者123 更新时间:2023-11-30 11:12:01 26 4
gpt4 key购买 nike

我有一个特殊的要求,我需要实现以下目标

  1. 除字符串之间的 _ 外,不允许使用特殊字符。
  2. 字符串不应以_. 和数值开头或结尾。
  3. 不得在任何数值前后使用下划线。

我能够实现其中的大部分,但我的 RegEx 模式还允许使用其他特殊字符。

我如何修改下面的 RegEx 模式以不允许除下划线之外的任何特殊字符出现在字符串之间。

^[^0-9._]*[a-zA-Z0-9_]*[^0-9._]$

最佳答案

您可能会使用 negative lookaheads断言您的要求:

^(?![0-9._])(?!.*[0-9._]$)(?!.*\d_)(?!.*_\d)[ a-zA-Z0-9_]+$

解释

  • ^ 断言字符串的开始
  • (?![0-9._]) 断言字符串不以 [0-9._]
  • 开头的否定前瞻
  • (?!.*[0-9._]$) 断言字符串不以 [0-9._] 结尾的否定前瞻/li>
  • (?!.*\d_) 否定前瞻断言字符串不包含后跟下划线的数字
  • (?!.*_\d) 否定前瞻断言字符串不包含下划线后跟数字
  • [a-zA-Z0-9_]+ 匹配字符类中指定的内容一次或多次。您可以将允许匹配的内容添加到字符类中,例如还可以添加 .
  • $ 断言字符串结束

Regex demo

关于javascript - 正则表达式模式不允许除下划线外的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53300922/

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