如果我有一个像“something12”或“something102”这样的字符串,我将如何在javascript中使用正则表达式来只返回数字部分?
正则表达式使用 javascript 只返回数字
IT技术
javascript
regex
2021-02-02 06:06:30
6个回答
常用表达:
var numberPattern = /\d+/g;
'something102asdfkj1948948'.match( numberPattern )
这将返回一个包含两个元素的数组,'102' 和 '1948948'。随心所欲地操作。如果它不匹配任何它将返回 null。
连接它们:
'something102asdfkj1948948'.match( numberPattern ).join('')
假设您没有处理复杂的小数,我想这应该就足够了。
您还可以去除所有非数字字符(\D
或[^0-9]
):
let word_With_Numbers = 'abc123c def4567hij89'
let word_Without_Numbers = word_With_Numbers.replace(/\D/g, '');
console.log(word_Without_Numbers)
对于带有小数和减号的数字,我使用以下代码段:
const NUMERIC_REGEXP = /[-]{0,1}[\d]*[.]{0,1}[\d]+/g;
const numbers = '2.2px 3.1px 4px -7.6px obj.key'.match(NUMERIC_REGEXP)
console.log(numbers); // ["2.2", "3.1", "4", "-7.6"]
更新: - 7/9/2018
找到了一个可以让你直观地编辑正则表达式的工具:JavaScript Regular Expression Parser & Visualizer。
更新:
这是另一个您甚至可以调试正则表达式的工具:Online regex tester and debugger。
更新:
另一个:RegExr。
更新:
如果你只想要数字:
var value = '675-805-714';
var numberPattern = /\d+/g;
value = value.match( numberPattern ).join([]);
alert(value);
//Show: 675805714
现在你加入了数字
我猜您想从字符串中获取数字。在这种情况下,您可以使用以下方法:
// Returns an array of numbers located in the string
function get_numbers(input) {
return input.match(/[0-9]+/g);
}
var first_test = get_numbers('something102');
var second_test = get_numbers('something102or12');
var third_test = get_numbers('no numbers here!');
alert(first_test); // [102]
alert(second_test); // [102,12]
alert(third_test); // null