I have three variables in javascript like
var a = document.getElementById("txtOrderNumberRelease1").value;
var b = document.getElementById("txtOrderNumberRelease2").value
var c = document.getElementById("ddlOrderNumberRelease3");
和
var mainString ="ROAM-LCD-Synergy-789-456-LLX WARRANTY"
在mainString中,值“789”来自变量“a”, 值“456”来自变量b,值“LLX”来自变量“c”。 变量“a”和“b”将始终为整数,而变量“c”将始终为三个值之一,即。 “LLI,LLA,LLX”。
在值“789”之前,可以有任何数量的单词由“ - ”分开。像ROAM-LCD-Synergy-SSI等...... 但是在mainString中变量“c”的值,即“LLX”之后,例如,只能有一个单词。 “保证”。
现在我的问题是,我必须替换“a”,“b”和“c”这三个值。使用我新输入的值“789-456-LLX”可以说987-654-LLA,那么我想要的最终字符串就是
old string:mainString =“ROAM-LCD-Synergy-789-456-LLX WARRANTY”
所需字符串:mainString =“ROAM-LCD-Synergy-987-654-LLA保修”
请提出一些建议。
由于
答案 0 :(得分:1)
var a = 123;
var b = 456;
var c = "ABC";
var mainString ="ROAM-LCD-Synergy-789-456-LLX WARRANTY";
var updatedString = mainString .replace(/\d{3}-\d{3}-[A-Z]{3}\s([^\s]*)$/,a+"-"+b+"-"+c+" $1");
console.log(updatedString);
答案 1 :(得分:0)
这样的事情应该有效:
mainString.replace(/[\d]{3}\-[\d]{3}\-[\w]{3}\s([\w]+)$/, a + "-" + b + "-" + c + " $1");
答案 2 :(得分:0)
这是一个使用string.split的选项。
function replaceLastThreeDashedFields(original,a,b,c) {
var spaceSplit = original.split(' ');
var dashSplit = spaceSplit[0].split('-');
dashSplit[dashSplit.length - 3] = a;
dashSplit[dashSplit.length - 2] = b;
dashSplit[dashSplit.length - 1] = c;
var newDashed = dashSplit.join('-');
spaceSplit[0] = newDashed;
var newSpaced = spaceSplit.join(' ');
return newSpaced;
}
答案 3 :(得分:-1)
以下代码应根据a,b和c ...
的值进行更新var mainString ="ROAM-LCD-Synergy-789-456-LLX WARRANTY";
var a = document.getElementById("txtOrderNumberRelease1").value;
var b = document.getElementById("txtOrderNumberRelease2").value;
var c = document.getElementById("ddlOrderNumberRelease3");
mainString = mainString.replace("789",a);
mainString = mainString.replace("456",b);
mainString = mainString.replace("LLX",c);
答案 4 :(得分:-1)
只需在分配前更改值?在声明变量之前放置它。
document.getElementById("txtOrderNumberRelease1").value = '987';
document.getElementById("txtOrderNumberRelease2").value = '654';
document.getElementById("txtOrderNumberRelease3").value = 'LLA';