我想删除testString.matches(regex)
符号前的任何数字
我想删除'$'
符号后的所有'0' ','
位数。
但如果仅提及$
字符串,我不想删除'0's
。
这是我的正则表达式:'$00' or '$0'
我想从下面提到的字符串中删除所有home_value.replace(/,|(\d*\$0*)|(^0)*/g, '');
和0's
符号。但是我们可以说,如果用户输入'$', ','
..应该转换为'$0' or '$000'
'0'
答案 0 :(得分:4)
与一个正则表达式相比,有一种更简单的方法可以做到这一点,因为你只是在美元金额之后:
var stripExcessNumbers = function (n) {
return parseInt(String(n).split("$")[1].replace(/[^\d]/g, ""), 10);
}
只要你的数字不会太大,这就应该有效。
测试用例
var stripExcessNumbers = function (n) {
return parseInt(String(n).split("$")[1].replace(/[^\d]/g, ""), 10);
}
var tests = "0045$002,34234 $000300 $000387687 $000 $00 $0".split(" ")
, answers = [234234, 300, 387687, 0, 0, 0]
for (var i = 0; i < tests.length; i++) {
document.write("<p>" + stripExcessNumbers(tests[i]) +
", correct answer: " + answers[i] + "</p>");
}
答案 1 :(得分:3)
答案 2 :(得分:-2)
s = '2342$08934200'
+s.substr(s.indexOf('$')+1) // 8934200
s = '$0000'
+s.substr(s.indexOf('$')+1) // 0