字符串:$ 22.4969694
正则表达式:([.])+
我已尝试.test()
,但我没有尝试获得布尔响应,我试图获取.
字符和切片的长度编号它
因此,如果在字符串中检测到.
,它会将$ 22.
从字符串中切除,并将变量值设置为4969694
。
答案 0 :(得分:3)
没有正则表达式,它非常直接
var str1 = '$ 22.4969694';
var str2 = '$ 22694';
console.log( str1.split('.').pop() ) // 4969694
console.log( str2.split('.').pop() ); // nothing happens

答案 1 :(得分:1)
我并非100%确定我会按照您希望的最终结果来表达,但这是我想出的可能对您有用的内容。
根据您想要的值,这可行。
let vals = ['$ 22.4969694', '$ 22', '$ 22567.00']
vals.forEach(val => {
let v = val.replace(/^.*\./, '')
console.log(v)
})

答案 2 :(得分:1)
您可以使用match
:
brew
const str = '$ 22.4969694';
const regex = /(\$)\s+(\d+)\.(\d+)/
将返回一个数组。第一个元素是原始字符串,其余元素是匹配。在这种情况下,货币符号,然后是美元,然后是美分。
match
您可以使用常规数组方法访问它们:
str.match(regex) // [ "$ 22.4969694", "$", "22", "4969694" ]