繁体   English   中英

如何只获取javascript中的数字?

[英]How to get only number in javascript?

我有两个不同的数字,每个都有一个美元符号。 我想分别得到这两个数字。

JavaScript的:

 function price_range(id){ //var str = $('#'+id).val(); var str = '$75 - $300'; var removeDollar = str.replace(/\\$/,''); alert(removeDollar); } 
 <a href="javascript:;" onclick="price_range('amount')">Click Here</a> 

上面的代码只替换了第一个美元符号,但我有两个美元符号和数字。 我如何分别获得75300

你可以从字符串中获取所有数字,就像这样

console.log('$75 - $300'.match(/(\d+)/g));
# [ '75', '300' ]

注意:即使字符串中有两个以上的数字,这个简单的RegEx也会匹配并获取所有数字。 但是对于这个简单的任务,您不需要复杂的RegEx。

如果你想修复你的程序,你可以这样做

console.log('$75 - $300'.replace(/\$/g, '').split(/\s*-\s*/));
# [ '75', '300' ]

replace(/\\$/g, '')将替换字符串中的$符号,然后您可以根据\\s*-\\s*拆分字符串,这意味着零个或多个空白字符,后跟- ,然后按照零个或多个空格字符。

您可以将.replace()函数中的正则表达式扩展为具有全局标志g

str.replace(/\$/g,'');

整个脚本将像这样工作,但将特定于删除$符号。

 function price_range(id){ //var str = $('#'+id).val(); var str = '$75 - $300'; var removeDollar = str.replace(/\\$/g,''); alert(removeDollar); } 
 <a href="javascript:;" onclick="price_range('amount')">Click Here</a> 

一个选项是使用正则表达式提取数字,如下所示:

var str = '$70 - $300 some other 500%';
var arrOfStrings = str.match(/\d+/gi);
// arrOfStrings = ['70', '300', '500']
var arrOfNrs = arrOfStrings.map(function (e) {
    return parseInt(e);
});  // map not supported by all browsers. you can use the _.map from underscorejs.org
// arrOfNrs = [70, 300, 500]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM