字符串: $ 22.4969694
正则表达式: ([.])+
我尝试使用.test()
,但我不是要获得布尔响应,而是要获得.
字符的长度数字并进行切割。
所以如果在字符串中检测到.
,它将从字符串中切掉$ 22.
并将变量值设置为4969694
。
字符串: $ 22.4969694
正则表达式: ([.])+
我尝试使用.test()
,但我不是要获得布尔响应,而是要获得.
字符的长度数字并进行切割。
所以如果在字符串中检测到.
,它将从字符串中切掉$ 22.
并将变量值设置为4969694
。
没有正则表达式,这很简单明了。
var str1 = '$ 22.4969694';
var str2 = '$ 22694';
console.log( str1.split('.').pop() ) // 4969694
console.log( str2.split('.').pop() ); // nothing happens
我不完全确定您希望最终结果看起来是什么,但这是我想到的可能适合您的方案。
根据您想要的值,这个方案可行。
let vals = ['$ 22.4969694', '$ 22', '$ 22567.00']
vals.forEach(val => {
let v = val.replace(/^.*\./, '')
console.log(v)
})
match
:const str = '$ 22.4969694';
const regex = /(\$)\s+(\d+)\.(\d+)/
match
将返回一个数组。第一个元素是原始字符串,其余元素是匹配项。在这种情况下,货币符号,然后是美元,最后是美分。
str.match(regex) // [ "$ 22.4969694", "$", "22", "4969694" ]
const m = str.match(regex);
console.log(m[3]); // 4969694