替换字符串中的变量替换错误的字符

时间:2017-07-14 20:45:01

标签: javascript jquery arrays regex

美好的一天。我有一个脚本正在一个输入执行,它取代了一部分字符串。它应该工作;除了,当两个下划线分开的字符串包含相同的字符时。下图,我想要第二个角色" M"将被替换为" M1"不是第一个。

有没有办法指定或声明您想要用多个相同字符替换字符串中的变量的确切位置?任何帮助都非常感谢。

enter image description here

3 个答案:

答案 0 :(得分:1)

这样做的一种方法是简单地在替换字符串中添加下划线,如果这是您希望M出现在字符串中的方式。

var a = "PH_WM_M_LT"
console.log(a.replace("_M", "_M1"));

答案 1 :(得分:1)

您可能希望拆分然后使用替换值重新组合,而不是替换值中的所有内容:

var spl = getVal.split('_');
for(var idx =0 ; idx < spl.length; idx++ ) {
    var b = spl[idx].replace(/\d+/g,''); // remove all numbers?
    spl[idx] = b + afVal;
}
rep = spl.join('_');

答案 2 :(得分:1)

如果要指定特定位置,可以在字符串中使用 indexof 找到位置,例如getVal.indexof(&#34; _M&#34;)。然后,您可以使用子字符串,然后专门添加如下所示的值

function insertString(insertPoint, sValue, insertValue)
    {
         var n = sValue.length;
         var frontHalf = sValue.substring(0,insertPoint);
         var backHalf = sValue.substring(insertPoint,n);
         return frontHalf + insertValue + backHalf;
    }