我在Javascript中有一个值为
var input = "Rs. 6,67,000"
我怎样才能得到数值?
结果: 667000
当前方法(不工作)
var input = "Rs. 6,67,000";
var res = str.replace("Rs. ", "").replace(",","");
alert(res);
Result: 667,000
答案 0 :(得分:18)
这对于正则表达式非常有用。
var str = "Rs. 6,67,000";
var res = str.replace(/\D/g, "");
alert(res); // 667000
\D
匹配不数字的字符。所以任何非数字都被空字符串替换。结果只是字符串中的数字。
正则表达式文字末尾的g
用于“全局”,意味着它替换所有匹配,而不仅仅是第一个匹配。
此方法适用于各种输入格式,因此如果"Rs."
稍后变为其他内容,则此代码不会中断。
答案 1 :(得分:2)
您可以使用
str.replace('Rs. ', '').replace(/,/g, '');
或
str.replace(/Rs. |,/g, '');
/,/g
是正则表达式。 g
表示global
/Rs. |,/g
是一个正则表达式,可以匹配Rs.
或,
答案 2 :(得分:1)
你真的很亲密。更改您的替换以使用g
标志,该标志将替换所有。
str.replace("Rs. ", "").replace(/,/g,"");
答案 3 :(得分:1)
对于这项任务,最简单的方法是使用正则表达式:)
var res = input.replace(/\D/g,'');
您可以在此处找到有关如何使用正则表达式的更多信息:
https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions
我希望它有所帮助:)。
此致
答案 4 :(得分:1)
试试这个
var input = "Rs. 6,67,000";
var res = input.replace(/Rs. |,/g, '');
alert(res);
谢谢,
SuperCoder
答案 5 :(得分:1)
如果您偶然需要逗号,则可以使用以下代码:
var input = "Rs. 6,67,000"
const numbers = str.match(/(\d|,)+/g).pop();
// 6,67,000
答案 6 :(得分:1)
您可以创建这样的功能
function justNumbers(string) {
var numsStr = string.replace(/[^0-9]/g, '');
return parseInt(numsStr);
}
var input = "Rs. 6,67,000";
var number = justNumbers(input);
console.log(number); // 667000
答案 7 :(得分:0)
var input = "Rs. 6,67,000";
input = input.replace("Rs. ", "");
//loop through string and replace all commas
while (input.indexOf(",") !== -1) {
input = input.replace(",","");
}
答案 8 :(得分:0)
试试这个
var input = "ds. 7,765,000";
var cleantxt = input.replace(/^\D+/g, '');
var output = cleantxt.replace(/\,/g, "");
alert(output);