2013-02-22 90 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