这可能是一个简单的问题。
如果变量包含字母或数字,我需要匹配。以下内容未提供任何结果。
var onechar = 1;
if (onechar.match(/[0-9]/)) {
alert ("A digit");
} else if (onechar.match(/[a-z]/)){
alert ("A letter");
} else {
alert ("Not a digit or a letter");
}
由于
答案 0 :(得分:1)
使用test
进行此类检查会更有效,它会自动调用toString
的参数
var onechar = 1;
if ( /\d/.test(onechar) ) {
alert ("A digit");
} else if ( /[a-z]/.test(onechar) ) {
alert ("A letter");
} else {
alert ("Not a digit or a letter");
}
答案 1 :(得分:0)
使用toString()方法转换为字符串并使用正则表达式。
var onechar = 1;
onechar = onechar.toString();
if (onechar.match(/[0-9]/)) {
alert ("A digit");
} else if (onechar.match(/[a-z]/)){
alert ("A letter");
} else {
alert ("Not a digit or a letter");
}
此致
答案 2 :(得分:0)
您正在正确执行此操作,只需尝试添加toString()函数即可。所以代码看起来像:
var onechar = 1;
onechar = onechar.toString();
if (onechar.match(/[0-9]/)) {
alert ("A digit");
} else if (onechar.match(/[a-z]/)){
alert ("A letter");
} else {
alert ("Not a digit or a letter");
}
除此之外,您还可以使用\d
代替0-9
由于未使用忽略大小写,因此您应使用[a-zA-Z]
来匹配字母。
答案 3 :(得分:0)
由于没有其他答案解决条件“单个”字母或数字......
var onechar = "1"; // 1 is an integer, it wouldn't have a "match" function
if (onechar.match(/^[0-9]$/)) { // add ^ and $ to mark the beginning and end of the string
alert ("A digit");
} else if (onechar.match(/^[a-z]$/i)){ // add /i for case insensitive match
alert ("A letter");
} else {
alert ("Not a digit or a letter");
}
答案 4 :(得分:-2)
这就是你想要的:
var onechar = 1;
console.log( !!( '' + onechar ).match( /\d|\w/g ) );
>> true
var onechar = 'foo';
console.log( !!( '' + onechar ).match( /\d|\w/g ) );
>> true
var onechar = '+-)(';
console.log( !!( '' + onechar ).match( /\d|\w/g ) );
>> false