Javascript:
var validate(s) = s.match ^( 100(?:\.0{1,2})? | 0*?\.\d{1,2} | \d{1,2}(?:\.\d {1,2})? )% $ != null;
var str = value.match(/\/\/%//g);
if(converted==NaN){
alert('Input was not a number');
}
else if(converted != null) {
var fracToDecimal = eval (value);
alert(fracToDecimal);
}
else if(converted = str) {
var percToDecimal = value/100;
alert(percToDecimal);
} }
5条答案
按热度按时间r6hnlfcb1#
所以你有这样一个字符串:
50%
?不如这样:r6vfmomb2#
如果使用
parseFloat
,它将读取字符串,直到第一个非数字字符(%
)然后你可以检查它是否是
NaN
,并转换它。注意:您需要使用
isNaN
,因为NaN === NaN
就是false
(JavaScript很奇怪)。更新:我看到你也有
fracToDecimal
。你不需要eval
。只要做一个简单的split
。pkwftd7m3#
假设“%”在字符串的右边,只需使用
parseFloat(s)/100
http://jsfiddle.net/TrCYX/1/
jtw3ybtb4#
我迟到了很久,但是如果它是小数,保持它原样是这样的
hpxqektj5#