为什么String.prototype.replace进程只匹配第一个?

时间:2015-09-25 17:07:57

标签: javascript

我相信大家都知道 "some string".replace("s", "")仅剥离第一个" s" occurence 但是原因是什么?

有人能给我一些内部逻辑的输入吗? 我在EMCA specs未能找到这一点 我的意思是每个决定都应该有一个动机部分,对我来说理解原因非常重要。

2 个答案:

答案 0 :(得分:5)

它以这种方式工作的原因就在于spec

  

如果 searchValue 不是正则表达式,请将 searchString 设为ToString( searchValue )并搜索第一次出现的字符串< / strong> of searchString 。设m为0。

规范说找出第一次出现,而不是每次出现

答案 1 :(得分:0)

你给它一个值s,它找到它所以它认为&#34;完成工作!&#34;所以你应该告诉机器它应该找到所有出现的&#34; s&#34;您可以使用正则表达式执行此操作:

<div class="hidden-phone visible-desktop action-buttons">
    <a class="red d_id" href="#" data-value="<?php echo $row['id'];?>">
        <i class="icon-trash bigger-130" id="bootbox-confirm"></i>
    </a>
</div>

 <script type="text/javascript">
    $(function() {
        $(".d_id").on(ace.click_event, function() {
            var x = $(this).attr('data-value');
            bootbox.confirm(x, function(result) {
                if(result) {
                    bootbox.alert(x);
                }
            });
        });
   })
</script>