Nat*_*Pet 37 javascript parsing
我传入一个名为value的参数.我想知道价值是否是浮动.到目前为止,我有以下内容:
if (!isNaN(value))
{
alert('this is a numeric value but not sure if it is a float.');
}
Run Code Online (Sandbox Code Playgroud)
如何更进一步将字符串转换为可以计算为浮点数的字符串?
Nel*_*son 34
像这样:
if (!isNaN(value) && value.toString().indexOf('.') != -1)
{
alert('this is a numeric value and I\'m sure it is a float.');
}?
Run Code Online (Sandbox Code Playgroud)
Man*_*gna 33
您可以使用parseFloat函数.
如果传递的值是float,则函数返回值,否则返回NaN.
就像是:
val = parseFloat(val);
if(isNaN(val))
alert("not a float!");
Run Code Online (Sandbox Code Playgroud)
以下功能还检查格式.例如JavaScript本机parseInt和parseFloat函数也解析包含非数字字符的字符串,上面的函数会产生这种后果.
// For example, following code will work
var n = parseInt('123asd');
n == 123
Run Code Online (Sandbox Code Playgroud)
这些函数将返回false此类字符串.
function isFloat(val) {
var floatRegex = /^-?\d+(?:[.,]\d*?)?$/;
if (!floatRegex.test(val))
return false;
val = parseFloat(val);
if (isNaN(val))
return false;
return true;
}
function isInt(val) {
var intRegex = /^-?\d+$/;
if (!intRegex.test(val))
return false;
var intVal = parseInt(val, 10);
return parseFloat(val) == intVal && !isNaN(intVal);
}
Run Code Online (Sandbox Code Playgroud)
检查字符串是整数还是浮点数
function isFloat(n) {
return parseFloat(n.match(/^-?\d*(\.\d+)?$/))>0;
}
//alert(isFloat("3.444"));
Run Code Online (Sandbox Code Playgroud)
Number.prototype.isFloat = function() {
return (this % 1 != 0);
}
Run Code Online (Sandbox Code Playgroud)
然后你可以
var floatValue = parseFloat("2.13");
var nonFloatValue = parseFloat("11");
console.log(floatValue.isFloat()); // will output true
console.log(nonFloatValue.isFloat()); // will output false
Run Code Online (Sandbox Code Playgroud)
像2.00JS 这样的值不能真正被认为是float,或者更确切地说,每个数字都是JS中的浮点数.
在我的情况下,一个非常简单的正则表达式成功了。
我需要验证用户的输入是否为有效的货币值。我只是用-
/^[0-9]+(\.)?[0-9]*$/.test(number)
Run Code Online (Sandbox Code Playgroud)
之间//的一切都是正则表达式。
/^表示匹配从单词的开头开始,$/表示匹配以单词结束。如果你认为这个词不能以字母开头,0那么表达式应该是[1-9][0-9]*
[0-9]+ 表示该词必须以至少一个数字开头。
注:*表示零个或多个,+表示一个或多个,?表示一个或无。
到这里为止,表达式是/^[1-9][0-9]*$/,这将仅验证整数。
要测试数字中的句点 (.),我们需要\.与表达式一起使用。.是匹配所有内容的特殊字符,\.只会匹配句点。
最后,另一个字符类[0-9]*将与零个或多个数字匹配。
测试用例
/^[0-9]+(\.)?[0-9]$/.test("21.38a") // ==> false
/^[0-9]+(\.)?[0-9]$/.test("21.38") // ==> true
/^[0-9]+(\.)?[0-9]$/.test("y2781.68") // ==> false
/^[0-9]+(\.)?[0-9]$/.test("2781r.68") // ==> false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70512 次 |
| 最近记录: |