2013-02-22 94 views
0

这可能是一个简单的问题。
如果一个变量包含一个字母或一个数字,我需要匹配。以下内容不提供任何结果。匹配一个字母或数字

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"); 
} 

感谢

+2

'onechar'是一个集成呃,不是一个字符串。这真的与jQuery无关。 – Blender 2013-02-22 10:52:00

回答

0

这是更有效地使用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"); 
} 
+0

这对我来说就像一个魅力。谢谢 – user2099032 2013-02-25 23:10:30

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"); 
} 

问候,

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]来匹配一个字母。

+0

太好了。这也适用。谢谢 – user2099032 2013-02-25 23:37:34

+0

不客气:) – 2013-02-26 06:35:06

-1

这是你想拥有的一切:

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 
+1

匹配'_',这是一个单词字符。并且不需要'g'标志。 – MikeM 2013-02-22 11:16:39

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"); 
} 
+0

它的工作原理。感谢您的解释。但是,我的下一个实现是接受onechar作为输入,并且此解决方案不适用于此扩展。 – user2099032 2013-02-25 23:49:44