在angular formarray中,我对输入字段使用了验证器。对于一个字段,我使用正则表达式检查<speak>标记。
<speak>
这是有效内容。
按照图案投掷错误。但是它应该抛出错误,即使它没有任何内容的标签,甚至它有空的空间。
下面是我用于验证的正则表达式我需要对正则表达式模式做什么修改。谢谢
apeeds0o1#
好的,你可以试试这个
/<speak>[^\s][^.]+[^\s]<\/speak>/gi
kxkpmulp2#
你的正则表达式说<speak ="<speak"\s* =任意数量的空格(包括0)> =">"\s* =任意数量的空格(包括0).* =任意数量的字符(包括0)<\/speak> ="""要确保标记之间至少有一个非空格字符,可以将其更改为:<speak\s*>\s*[^\s]+<\/speak>我们将.*替换为[^\s]+[^\s]表示空间以外的任何值,+表示1次或更多次更新:因为你是从字符串创建RegExp,所以你需要转义特殊字符:Validators.pattern("<speak\\s*>\\s*[^\\s]+<\\/speak>")
<speak
\s*
>
.*
<\/speak>
<speak\s*>\s*[^\s]+<\/speak>
[^\s]+
[^\s]
+
Validators.pattern("<speak\\s*>\\s*[^\\s]+<\\/speak>")
lawou6xi3#
如果标记中的内容不是一个或多个空白字符,则需要匹配。
<speak\s*.*>\s*[^\s]+</speak>
3条答案
按热度按时间apeeds0o1#
好的,你可以试试这个
kxkpmulp2#
你的正则表达式说
<speak
="<speak"\s*
=任意数量的空格(包括0)>
=">"\s*
=任意数量的空格(包括0).*
=任意数量的字符(包括0)<\/speak>
="""要确保标记之间至少有一个非空格字符,可以将其更改为:
<speak\s*>\s*[^\s]+<\/speak>
我们将
.*
替换为[^\s]+
[^\s]
表示空间以外的任何值,+
表示1次或更多次更新:
因为你是从字符串创建RegExp,所以你需要转义特殊字符:
Validators.pattern("<speak\\s*>\\s*[^\\s]+<\\/speak>")
lawou6xi3#
如果标记中的内容不是一个或多个空白字符,则需要匹配。