我是Javascript的新手,我想知道是否有办法检查java脚本中的varibale是否包含除数字之外的任何内容。 我有map变量,其中我有JSON值,如下所示。 ' ID'是地图的关键。
var map = {};
data = {"id":"01L","rowId":"01L","start":1399919400000,-- - -- -- ------}
map[data.id] = data;
'地图[ID]。开始'可以有两种值,如图所示。在案例1中,将只有数字,在案例2中,将有nums和alphabets。我需要检查这两个。
所以我需要检查是否' map [id] .start'包含任何字母。 我尝试了以下三种方式......但没有运气。
if((map[id].start).match(/[^0-9]/)) {
console.log("only numbers");
} else {
console.log("alphabets also");
}
TypeError: match is not a function
if(isNaN(map[id].start)) {
console.log("only numbers");
}else {
console.log("not only numbers");
}
if((map[id].start).indexOf(":")) > 0) {
console.log("not only numbers");
} else {
console.log("only numbers");
}
TypeError: s.indexOf is not a function
请帮帮我。
答案 0 :(得分:1)
stringX = "Some string"
regExp=/^[\d]*$/;
if(!regExp.test(stringX)) {
//Do something
}
1399660200000将触发false作为其唯一的数字
2014年5月10日星期六00:00:00 GMT + 0530。会触发true,因为它包含非数字字符
答案 1 :(得分:0)
Method2最接近正确,你需要做的就是重新排序条件,或者否定它。
if(isNaN(map[id].start)) {
console.log("not only numbers");
} else {
console.log("only numbers");
}
Method1失败,因为"foo".match()
总是返回一个数组,并且数组始终是truethy。
方法3失败,因为数字没有indexOf
方法。
答案 2 :(得分:0)
您可以像这样编辑方法3:
if(String(map[id].start).indexOf(":")) > 0) {
console.log("not only numbers");
} else {
console.log("only numbers");
}
String()
会更改字符串中的数字,因此您可以使用.indexOf()
答案 3 :(得分:0)
检查javascript字符串是否仅包含数字:
var myStringWithOnlyNumbers = '1234567890';
var myStringWithOtherStuff = '1234567890.';
/^[0-9]+$/.test(myStringWithOnlyNumbers);
/^[0-9]+$/.test(myStringWithOtherStuff);