我想使用正则表达式来验证textarea控件上字符串中的某些符号。
当前,这是我的正则表达式:
/^(?:((?!<\\)(?!\/>)).)*$/
它将检查具有/>或<\但不包含/>或<\(之间有空格)的字符串。
我要完成的是,例如,如果我在textarea中有一个类似break(
)的html标记,它将不匹配正则表达式,但是如果textarea中有“ foobar />”或“ <\ foo” “然后匹配。
有可能吗?
答案 0 :(得分:0)
您可以匹配空格(%)或字符(w)来帮助您。 / \ w + /> | <\\ w + / g将在整个字符串中检查foo />和<\ foo。
g标志代表全局,这意味着它将在字符串中重复自身,并且在您的语言中可能会以不同的方式实现。
答案 1 :(得分:0)
regex = r"^(?<!\<)(\s*\w+\s*\/>)$|^(\<\\\s*\w+\s*)(?!\>)$"
正则表达式匹配起始位置和结束位置regex101.com 负向后看和负向前看。
答案 2 :(得分:0)
我找到了问题的答案。解决我的问题的唯一方法是在正则表达式中添加多行(m)标志。
我认为当我尝试在文本区域中按Enter键时,它会生成一个隐藏的中断标签<br/>
此外,当我尝试从textarea粘贴数据时,它会生成一个段落标签<p>, <p/>
,因此我试图完成删除这些标签的操作。
但是由于它只是一个多行标志,所以现在可以使用。
现在这是我的正则表达式。
/^(?:((?!<\\)(?!\/>)).)*$/m
这是我表情的检验