如果以下字符串是<div>,则中断

时间:2016-05-05 10:33:25

标签: javascript regex

我想在#之后找到字符串,如果#a#a&nbsp;<div>..我遇到问题 正在努力返回a,但如果#a<div>..将返回a<div>

如果跟踪字符串为<div><br><p>而不仅仅是中断,该如何避免 e.g
#a<div>bc - a

https://regex101.com/r/xD1vN0/1

var re = /#([^#\s]*)/g;

2 个答案:

答案 0 :(得分:3)

您可以将正则表达式与tempered greedy token

一起使用
/#((?:(?!<(?:div|br|p)>)[^#\s])*)/g

(?:(?!<(?:div|br|p)>)[^#\s])*是一个驯化的贪婪令牌,可以匹配#以外的任何字符以及不会启动<div><br>或{{序列的空格的空格1}}。

JS演示:

&#13;
&#13;
<p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果达到<,您可以使用此模式中断

var re = /#([^#\s^<]*)/g;