在javascript中最好的方法来检查一个字符(长度为1),是一个数字(即0,1,2,3,4,5,6,7,8,9)还是一个字母(即A)到Z,a到z)?
由于
答案 0 :(得分:2)
我为你写了一点test case,至少对于数字检查功能。
考虑到所有函数都使用数字1
或字符串'1'
字面值返回true,使用Array
似乎是最快的方法(至少在Chrome中)。
var isNumericChar = (function () {
var arr = Array.apply(null, Array(10)).map(function () { return true; });
return function (char) { return !!arr[char]; };
})();
但是,如果您接受1
可能返回false,则switch语句会明显加快。
答案 1 :(得分:1)
为什么不:
function isNumber(i) {
return (i >= '0' && i <= '9');
}
function isLetter(i) {
return ((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z'));
}
答案 2 :(得分:0)
试试这个。
function validate_string() {
var str = "a"; //change to desired value;
var regX = new RegExp("([0-9A-Za-z])");
var ans = false;
if(str.length == 1) {
ans = regX.test(str);
}
return ans;
}
答案 3 :(得分:0)
也许尝试这样的事情
var certificate,resultValue = GetDefaultCertificateStoredOnTheCard();
此博客文章进一步阐明了此-u|--set-upstream-to
答案 4 :(得分:-1)
您可以检查变量的类型
function checkType(input){
console.log(typeof input)
}
checkType(1234); //number
checkType('Hello') //string
以下是更新版本
function checkType(i){
var input = i.toString(); //将所有内容转换为字符串以在其上运行.lenght()
for(var i=0; i<input.length; ++i){
if(input[i] >= '0' && input[i] <= '9'){
console.log(input[i]+' is a number');
}else if((input[i] >= 'a' && input[i] <= 'z') || (input[i] >= 'A' && input[i] <= 'Z')){
console.log(input[i]+' is a letter');
}
}
}
checkType('aa9fgg5')