NCNam 表示它必须以字母或下划线开头,并且只能包含字母、数字、下划线、连字符和句点。我尝试过这样编写正则表达式,但我认为它可能是错误的。
if(/^([_]|[a-zA-Z]+[\w\W])$/.test('abc' )) console.log('match')
最佳答案
您的 ^([_]|[a-zA-Z]+[\w\W])$
模式与等于 _
的字符串匹配([_]
) 或 (|
) 由 1+ 个字母 ([a-zA-Z]+
) 组成,后跟任何字符([\w\W]
)。因此,它无法验证您提到的类型的字符串。
您可以使用
/^[a-zA-Z_][\w.-]*$/
请参阅regex demo和下面的图表 ( source ):
详细信息
^
- 字符串开头[a-zA-Z_]
- 字母或_
[\w.-]*
- 0 个或多个字母、数字、下划线、点或连字符$
- 字符串结尾
关于javascript - 如何编写正则表达式来检查 JavaScript 中有效的 XML 元素 NCName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55038323/