136

次のコードを使用して、Javascript 文字列内の文字を抽出しています。

var first = str.charAt(0);

それが手紙かどうかを確認したいと思います。奇妙なことに、そのような機能が Javascript に存在するようには見えません。少なくとも私はそれを見つけることができません。

どうすればこれをテストできますか?

4

16 に答える 16

174

そのための組み込み関数があるとは思いません。しかし、正規表現で書くのは簡単です

function isLetter(str) {
  return str.length === 1 && str.match(/[a-z]/i);
}
于 2012-03-25T18:26:58.110 に答える
15

このプラグインには、あなたが求める機能があると思います: http://xregexp.com/plugins/ (github リンク: https://github.com/slevithan/xregexp )

これを使用すると、すべての Unicode 文字を単純に\p{L}.

このソース ファイルのヘッダーを読んで、サポートされているカテゴリを確認してください: http://xregexp.com/plugins/xregexp-unicode-categories.js

于 2012-03-25T21:21:06.293 に答える
8

ASCIIコードを使用するのはどうですか?

let n = str.charCodeAt(0);
let strStartsWithALetter = (n >= 65 && n < 91) || (n >= 97 && n < 123);
于 2019-06-25T03:13:15.193 に答える
0

新しい質問を投稿したくないので、ここに投稿します。コードに単一の文字宣言がないと仮定すると、文字を eval() してエラーを発生させ、文字の型を確認できます。何かのようなもの:

function testForLetter(character) {
  try {
    //Variable declarations can't start with digits or operators
    //If no error is thrown check for dollar or underscore. Those are the only nonletter characters that are allowed as identifiers
    eval("let " + character + ";");
    let regExSpecial = /[^\$_]/;
    return regExSpecial.test(character);
  } catch (error) {
    return false;
  }
}

console.log(testForLetter("!")); //returns false;
console.log(testForLetter("5")); //returns false;
console.log(testForLetter("ن")); //returns true;
console.log(testForLetter("_")); //returns false;

于 2018-07-30T07:47:01.913 に答える