簡體   English   中英

Javascript正則表達式允許負數

[英]Javascript regex to allow negative numbers

我正在使用此正則表達式來允許浮點數

str.replace(/(\.\d\d)\d+|([\d.]*)[^\d.]/, '$1$2')

我還需要允許負數。 有任何想法嗎。

這允許123.45,並且不允許像123.45a這樣的字符。 我需要允許-123.45。 目前不允許我輸入負數

這是匹配負浮點數的較短正則表達式:

/^-?[0-9]\d*(\.\d+)?$/

此正則表達式的解釋和演示

如果要明確匹配+123.123類的正數和負數,請使用以下正則表達式:

/^[-+]?[0-9]\d*(\.\d+)?$/

資源

使用此正則表達式:

(?!=\A|\s)(-|)[\d^]*\.[\d]*(?=\s|\z)

它將匹配所有浮點數。 演示: https : //regex101.com/r/lE3gV5/2

您可以嘗試以下正則表達式:

parseFloat(str.replace(/.*?(\-?)(\d*\.\d+)[^\d\.]*/, '$1$2'));

但是,匹配數字比替換其他字符更好:

var matches = /(\-?\d*\.(?:\d+)?)/.exec(str);
if (typeof matches != 'undefined' && matches.length > 0) {
    var num = parseFloat(matches[1]);
}

您可以嘗試使用regexp:

/-?(\\d+\\.\\d+)[^\\w\\.]/g

演示

試試以下方法

str.replace(/-?[0-9]+(\.[0-9]+)?/g,'')

                 OR 

str.match(/^-?[0-9]+(?:\.[0-9]+)?$/,'')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM