因此,作为我正在编写的xsd架构的一部分,我正在添加包含String内容的元素,但我想要做的是阻止用户输入HTML标签之类的内容。所以我认为最好的方法是添加一个限制性模式,所以我想传递一个正则表达式来阻止用户传入HTML标签,但我的正则表达式知识很差,实际上它已经超出了穷人。
到目前为止,我有这个
<xsd:element name="item" minOccurs="0" maxOccurs="42" type="type:extraInfoType" >
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:complexType name="extraInfoType">
<xsd:simpleContent>
<xsd:restriction base="xsd:string">
<xsd:pattern value="" /> // So I want a regular expression here.
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
所以我的问题是正则表达式会阻止用户输入HTML标签吗?
我见过类似<(img|a)[^>]*>(?<content>[^<]*)<
的内容,但是我对正则表达式的最小理解是,这仅用于检查<img>
和<a>
标记。我想检查所有标签。
我还以为我可能会[a-zA-Z0-9]
这样做会使元素只接受字符和数字而没有特殊字符?如果我想接受某些特殊字符,例如"
,'
,@
,,
,.
,&
,{{1},该怎么办? },(
,)
和£
?
答案 0 :(得分:0)
使用像{S(非空白字符)的character classes怎么样?
答案 1 :(得分:0)
根据我的经验,大多数&#34;标签&#34; (=节点/元素名称)包含字母数字,点,冒号和连字符。
因此,通用标记可以与</?[\w:.-]+(?:\s[^<]*?>|>)
模式匹配。但是,您需要检查特定情况的转义并允许多行输入匹配。