1

これは簡単な質問かもしれません。
変数に文字または数字が含まれているかどうかを照合する必要があります。以下は結果を提供しません。

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

ありがとう

4

5 に答える 5

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");
}
于 2013-02-22T11:05:10.143 に答える
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]

于 2013-02-22T11:02:33.513 に答える
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"); 
}

よろしく、

于 2013-02-22T10:56:05.757 に答える
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");
}
于 2013-02-22T11:14:42.980 に答える
-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
于 2013-02-22T11:07:51.863 に答える