【问题标题】:The .replace() is replacing occurrence in word.replace() 正在替换单词中的出现
【发布时间】:2017-12-20 10:10:51
【问题描述】:

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

假设用户输入“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】:

假设用户输入“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( "," );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 2015-09-08
    • 2016-10-14
    相关资源
    最近更新 更多