javascript - 如何编写正则表达式来检查 JavaScript 中有效的 XML 元素 NCName?

标签 javascript regex regex-group

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 ):

enter image description here

详细信息

  • ^ - 字符串开头
  • [a-zA-Z_] - 字母或 _
  • [\w.-]* - 0 个或多个字母、数字、下划线、点或连字符
  • $ - 字符串结尾

关于javascript - 如何编写正则表达式来检查 JavaScript 中有效的 XML 元素 NCName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55038323/

相关文章:

php - 将值从 PHP 传递到 JavaScript

javascript - 如何在网页中定位 Google 图表?

regex - 如何编写排除而不是匹配的正则表达式,例如,不包括(this | string)?

php - php 中的 preg_split 在数字前面和字母或空格后面的点处拆分字符串

正则表达式递归捕获的字符串

python - 从长字符串中提取特定的字母数字模式

c# - 其他页面上的事件未触发并给出服务器错误

javascript - 井字棋游戏,玩家 2 在 if 语句中放置棋子时出错

javascript - RegExp 树桩,应该很简单

java - Java 中的完整日期验证