javascript通配符替换功能

时间:2014-08-04 07:17:32

标签: javascript replace wildcard

以下脚本导致:res = NEW 我希望结果是:res = NEW_okok_NEW

。+找到第一个START和最后一个END,但我希望它找到下一个START和下一个/后面的END,并替换它。怎么可能?

<script>
$ (function () {
var str = "START_sometext_END_okok_START_someothertext_END"; 
var res = str.replace(/(START.+END)/g,'NEW');
alert(res);
});
</script>

2 个答案:

答案 0 :(得分:1)

你应该让你的正则表达不合适,所以它匹配的可能性越小而不是最多。

/(START.+END)/g

变为

/(START.+?END)/g

现在,它停在最近的END。 你可以有更多关于贪婪的解释&#39; here

答案 1 :(得分:0)

你需要从正则表达式中取出贪婪

str.replace(/START.+?(END)/g,'NEW');

=> "NEW_okok_NEW"

Demo