匹配一个字母或数字
这可能是一个简单的问题。
如果一个变量包含一个字母或一个数字,我需要匹配。以下内容不提供任何结果。匹配一个字母或数字
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");
}
感谢
这是更有效地使用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");
}
这对我来说就像一个魅力。谢谢 – user2099032 2013-02-25 23:10:30
使用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");
}
问候,
你做正确,只是尝试添加的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]
来匹配一个字母。
太好了。这也适用。谢谢 – user2099032 2013-02-25 23:37:34
不客气:) – 2013-02-26 06:35:06
这是你想拥有的一切:
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
匹配'_',这是一个单词字符。并且不需要'g'标志。 – MikeM 2013-02-22 11:16:39
由于没有其他回答地址条件“单个”字母或数字...
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");
}
它的工作原理。感谢您的解释。但是,我的下一个实现是接受onechar作为输入,并且此解决方案不适用于此扩展。 – user2099032 2013-02-25 23:49:44
'onechar'是一个集成呃,不是一个字符串。这真的与jQuery无关。 – Blender 2013-02-22 10:52:00