注:我-not-试图解析HTML与正则表达式
我试图取代包裹在$迹象任何内容($例如$)在一个字符串中。我设法想出了str.replace(/\$([^\$]*)\$/g), "hello $1!")
,但我在确保在用HTML标记包装时不会替换这些字符串时遇到问题。
例字符串:$someone$, <a>$welcome$</a>, and $another$
表达:/[^>]\$([^\$]*)\$[^<]/g
预期输出:hello someone!, <a>$welcome</a>, and hello another!
实际输出:$someonhello , !elcomhello , and !nother$
测试代码:alert("$someone$, <a>$welcome$</a>, and $another$".replace(/[^>]\$([^\$]*)\$[^<]/g, "hello $1!"));
拨弄: http://jsfiddle.net/WMWHZ/
谢谢!
我认为我们需要退后一步。你如何得到你正在解析的文本?你试图解决什么样的问题? – mkoryak
当你谈论HTML标签中包含的内容时,你实际上正在谈论解析HTML。因为如果不解析,你会如何决定HTML标记中包含的内容? – Gumbo
...并不会*每个*文本都包裹在一些HTML标签中,实际上? – Joey