parseInt("123@231.23")
返回123,这是一个数字。
有很多功能可以检测某些数字是否已经存在,但它们都依赖于parseInt 。
在不使用正则表达式的情况下检测这不是整数的另一种通用方法是什么?
答案 0 :(得分:3)
if (isNaN("123@231.23"))
{
alert("IsNaN - not a number");
}
else
{
alert ("it is a number");
}
我假设OP需要区分输入是否为数字。如果输入是浮点数或整数看起来与他的问题无关。 也许,我错了......
编辑: 好吧,为了让每个人都高兴,javasript中的整数非常大。 javascript中的大整数检查here。
询问某事是否为整数是问这是9007199254740992和-9007199254740992之间的整数。您可以使用模数%
$("#cmd").click(function (e) { ChectIfInteger( $("#txt").val() ) });
function ChectIfInteger(myval){
if (isNaN(myval)){
alert("not integer (not number)")
}
else{
//it is a number but it is integer?
if( myval % 1 == 0 ){
if (myval <= 9007199254740992 && myval >= -9007199254740992)
{
alert("it is integer in javascript");
}
else{
alert ("not integer");
}
}
else{
alert("nope, not integer");
}
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="txt"/>
<input type="button" id="cmd" value="test input">
答案 1 :(得分:1)
转换回String并比较:
SELECT REGEXP_REPLACE(fieldname, "(<a .* title=\\".*DiscountMan\\"[^>]*>)([^<]*)(<img [^>]*><\/a>)", '\\2')
答案 2 :(得分:1)
如果你真的想检查“有效整数”,你必须将isNaN
与其他类似的东西结合起来:
function isValidInteger(numberToTest) {
return !(isNaN(numberToTest) || String(parseInt(numberToTest)) !== numberToTest.toString());
}
这将评估如下:
console.log(isValidInteger('123@231.23')); // false
console.log(isValidInteger('123231.23')); // false
console.log(isValidInteger('12323')); // true
console.log(isValidInteger(1e-1)); // false
console.log(isValidInteger('1e-1')); // false
这项工作即使有数字。 Here is PLNKR进行测试。
答案 3 :(得分:0)
我认为这是测试整数的最佳方法:
away_id
请注意字符串/数字,如&#34; 123.0&#34;评估为Away
。
答案 4 :(得分:0)
这是另一个不依赖字符串的东西:
function looksLikeInteger(n) {
return +n == n && +n === ~~n;
}
可能应该被称为&#34; LooksLikeJavaScriptInteger&#34;因为它只适用于32位整数。它用一元+
强制数字,然后检查是否相等(那么丑陋的字符串和对象被抛出),然后检查以确保数字值在强制转换为整数时不会改变。 / p>