.replace()正在替换word中的出现

时间:2017-12-20 10:10:52

标签: javascript arrays angularjs tags

我有一个输入字段,用户可以在其中输入标签

假设用户输入" xyz_DTL_D, John_D"并存储在tagArr[]

我想替换输入" _D"用"" (空字符串)值.so我写道:

 var dailycheck = "_D";
   for(var i = 0; i < tagArr.length; i++) {
        if(tagArr[i].indexOf(dailycheck) !== -1){
                        var str = tagArr[i].toString();
                        var finalTag =res.replace("_D" ,"");
                        $scope.tag[i] = finalTag;
                }
        }

问题是它还用&#34;&#34;取代了_DTL。这是不期望的。

预期输出:XYZ_DTL , John

现在输出:XYZTL_D , John

有没有办法只替换表达式&#34; _D&#34;而不是所有事件都从_D开始的单词?

欢迎提出建议。

由于

1 个答案:

答案 0 :(得分:1)

  

假设用户输入“xyz_DTL_D, John_D

     

预期输出:XYZ_DTL , John

您希望仅替换字符串末尾或_D 之前,

此外,似乎"xyz_DTL_D, John_D "tagArr.toString()

的输出

尝试

var output = tagArr.map( s => s.trim().replace( /(_D)$/, "" ) ).join( "," );