Javascript 将()替换为Split()
我需要输入一个“0”,以防逗号后只有一个数字,replace()在这种情况下如何工作Javascript 将()替换为Split(),javascript,Javascript,我需要输入一个“0”,以防逗号后只有一个数字,replace()在这种情况下如何工作 var a=“2x 250,5”; log(a.replace(a.split(“,”[1],a.split(“,”[1]+0)); //预期结果 //2x 250,50 //输出 //2x 2500,5您可以搜索逗号、数字和字符串结尾,并在结尾添加零 var a=“2x 250,0”; log(a.replace(/,\d$/,“$&0”)您可以搜索逗号、数字和字符串结尾,并在结尾添加零 var a=“
var a=“2x 250,5”;
log(a.replace(a.split(“,”[1],a.split(“,”[1]+0));
//预期结果
//2x 250,50
//输出
//2x 2500,5
您可以搜索逗号、数字和字符串结尾,并在结尾添加零
var a=“2x 250,0”;
log(a.replace(/,\d$/,“$&0”)代码>您可以搜索逗号、数字和字符串结尾,并在结尾添加零
var a=“2x 250,0”;
log(a.replace(/,\d$/,“$&0”)代码>
var a=“2x 250,1”,
splitvar=“,”
a、 split(splitvar)[1]。长度==1&&(a=a.replace(splitvar+a.splitvar)[1],“,”+a.splitvar(splitvar)[1]+0))
控制台日志(a)代码>
var a=“2x 250,1”,
splitvar=“,”
a、 split(splitvar)[1]。长度==1&&(a=a.replace(splitvar+a.splitvar)[1],“,”+a.splitvar(splitvar)[1]+0))
控制台日志(a)代码>试试看
var测试=[
“2x 250,0”,
“2x 200,03”,
'2x 511,0',
“2x 413,3”
]
函数addZero(str){
返回str.replace(/,\d$/,x=>x+'0');
}
tests.forEach(str=>console.log(addZero(str))代码>试试看
var测试=[
“2x 250,0”,
“2x 200,03”,
'2x 511,0',
“2x 413,3”
]
函数addZero(str){
返回str.replace(/,\d$/,x=>x+'0');
}
tests.forEach(str=>console.log(addZero(str))代码>
a=“2x 250,0”;
console.log([a.split(',')、a.split(',')).pop().length==1?'0':null].join('')代码>
a=“2x 250,0”;
console.log([a.split(',')、a.split(',')).pop().length==1?'0':null].join('')
您的代码正在替换它找到的第一个“0”
。a.split(“,”[1]
->0
。如果您在2x 250,0中用00
替换0
,这就是您得到的结果。不知道你为什么期望这是不同的。此外,如果您已经在拆分,只需使用拆分值,并将其连接在一起,而不是替换。您需要01还是10?@VahidAlimohamadi10@VLAZ“不确定您为什么期望这会有所不同”,因为我不理解replace()函数实际上是如何工作的。我在想,使用split时,只有逗号后面的内容才会被替换。您的代码正在替换它找到的第一个“0”
。a.split(“,”)[1]
->0
。如果您在2x 250,0中用00
替换0
,这就是您得到的结果。不知道你为什么期望这是不同的。此外,如果您已经在拆分,只需使用拆分值,并将其连接在一起,而不是替换。您需要01还是10?@VahidAlimohamadi10@VLAZ“不确定您为什么期望这会有所不同”,因为我不理解replace()函数实际上是如何工作的。我在想,对于split,只有逗号后面的部分会被替换。这将250,15
替换为250150
。哦,我理解这将250,15
替换为250150
。哦,我理解,但最好使用另一个变量,而不是两次split,只用于内联。但最好使用另一个变量,而不是两次拆分,只用于内联。Nice one,Nice one,Nice one这将在末尾添加一个零。这将在末尾添加一个零。
a.replace(/,\d$/, x => x+'0');