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

问题描述 投票:-1回答:1

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

假设用户输入“xyz_DTL_D, John_D”并存储在tagArr[]中。

我想用“”(空字符串)值替换输入“_D”。所以我写道:

 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;
                }
        }

问题是它用“”替换了_DTL,这是不期望的。

预期产量:XYZ_DTL , John

目前的输出:XYZTL_D , John

有没有办法只替换表达式“_D”而不是从_D开始的所有出现的单词?

欢迎提出建议。

谢谢

javascript arrays angularjs tags
1个回答
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( "," );
© www.soinside.com 2019 - 2024. All rights reserved.