求一段JS正则表达式,匹配金额

JavaScript015

求一段JS正则表达式,匹配金额,第1张

function getPrice(s) {

    s = s.match(/\d+(?:\.\d+)?元/)

    // 如果没有匹配项,会返回空字符串

    return s ? s[0] : ''

}

var price = getPrice('龙马仕 劲爽清透洁面乳120g*2支 天猫19.9元包邮')

alert(price) // 19.9元

只是double类型吗?保留几位小数?

这个可以验证带小数部分的小数和不带小数点的整数

<script>

function verify(node)

{

var str = node.value

if(str.match(/^(:?(:?\d+.\d+)|(:?\d+))$/)) alert('match')

else alert('not match')

}

</script>

<input type=text id='txt' />

<input type=button onclick="verify(document.getElementById('txt'))" />

用正则就可以了。

//将不匹配价格格式的字符串用空替换掉

var getPrice = function(str){

    return str.replace(/[^¥\d+\.?\d$]/g,"")

}

var oStr = "一斤¥1300装起盒子"

console.log(getPrice(oStr)) // ¥1300