javascript - 字母数字值的正则表达式,而不是两个连续的下划线下划线

标签 javascript regex validation lwc

我需要在 javascript 中为以下条件编写正则表达式

自定义元数据记录 MasterLabel 字段只能包含下划线和字母数字字符。它必须是唯一的,以字母开头,不包含空格,不以下划线结尾,并且不包含两个连续的下划线。

如果我们遗漏了独特的部分,因为我们必须用系统记录来检查它,我需要一个正则表达式来测试上面提到的其他条件。

这是我到目前为止构建的表达式,但它似乎不起作用。我是正则表达式的新手,因此我们将不胜感激。

/^[a-zA-Z]([a-zA-Z0-9][^ ][^__])[^_]*$/

最佳答案

当且仅当它匹配以下正则表达式时,该字符串才具有所有必需的属性:

/^[a-z][a-z\d]*(?:_[a-z\d]+)*$/i

Demo

正则表达式可以分解如下。

/
^           # match beginning of string
[a-z]       # match a letter
[a-z\d]*    # match one or more alphanumeric characters
(?:         # begin non-capture group
   _        # match an underscore
  [a-z\d]+  # match one or more alphanumeric characters
)*          # end non-capture group and execute it zero or more times
$           # match end of string
/i          # specify matches of letters to be case-indifferent

请注意,我防止连续出现两个下划线的方法具有偶然的副作用,即确保字符串中的最后一个字符不是下划线(免费赠品!)。

关于javascript - 字母数字值的正则表达式,而不是两个连续的下划线下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71191932/

相关文章:

javascript - 在immutable.js setIn([]) 函数中动态设置路径

javascript - ionic 2 : use NavController

javascript - 下面代码中的 'marker' 和 'infoWindow' 实例是怎么回事?

java - 带有分组的正则表达式不直观地匹配?

jquery - 为什么这不会验证(jquery 问题)?

php - 如何在页面刷新后保持单选按钮处于选中状态?

javascript - 对跨多行的数据应用正则表达式 - "gm"标志不起作用

javascript - 重写公式字符串以用 Math.pow(a, b) 替换 a^b

python - 在 Django 表单中设置动态选择时的验证

validation - SwiftUI 验证和否决用户输入