首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查字符串是否是有效的XML元素名称?

如何检查字符串是否是有效的XML元素名称?
EN

Stack Overflow用户
提问于 2010-03-25 22:20:57
回答 9查看 33.9K关注 0票数 22

我需要PHP中的regex或函数来验证字符串是一个好的XML元素名称。

表格w3schools:

XML元素必须遵循以下命名规则:

  1. 名称可以包含字母、数字和其他字符。
  2. 名称不能以数字或标点符号开头。
  3. 名称不能以字母XML (或Xml或xml等)开头。
  4. 名称不能包含空格

我可以编写一个基本的正则表达式,它将检查规则1、2和4,但它不会考虑所有允许的标点符号,也不会考虑第3条规则。

代码语言:javascript
复制
\w[\w0-9-]

友好更新

这里是格式良好的XML元素名称的更权威的来源

名称和标记

代码语言:javascript
复制
NameStartChar   ::=
    ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] |
    [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | 
    [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | 
    [#x10000-#xEFFFF]

NameChar    ::=
    NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]

Name    ::=
    NameStartChar (NameChar)*

另外,还指定了一个单独的非令牌化规则:

以字符串"xml“开头的名称,或以任何与之匹配的字符串((‘X’分部‘x’)(‘M’区‘m’‘)(’L‘=’l‘’))开头的名称,都保留在本规范或未来版本的规范中用于标准化。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2519845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档