web-dev-qa-db-ja.com

文字a〜z、A〜Zのみの正規表現

JavaScriptまたはjQueryで正規表現を作成する方法がわかりません。

文字列にa-zとA-Zの間の文字のみが含まれているかどうかをチェックする正規表現を作成します。

[〜#〜] edit [〜#〜]

正規表現を作成しようとしたとき

/^[a-zA-Z\s]+$/

空白も受け入れます。動作していません。間違いは何でしょうか?

JavaScript RegExpの例:オンライン正規表現テスターで正規表現をテストしています。

26
Shantanu Gupta
/^[a-zA-Z]*$/

変更 *から+空の一致を許可したくない場合。

参照:

文字クラス([...]アンカー(^および$繰り返し(+*

/は単なる区切り文字であり、正規表現の開始と終了を示します。これの1つの使用法は、 修飾子​​ を使用できるようになったことです。

61

他の答えが何を言っているのかをピギーバックします、あなたはそれらを行う方法がまったくわからないので、ここであなたがJavaScriptでそれを行う方法の例を示します:

var charactersOnly = "This contains only characters";
var nonCharacters = "This has _@#*($()*@#$(*@%^_(#@!$ non-characters";

if (charactersOnly.search(/[^a-zA-Z]+/) === -1) {
  alert("Only characters");
}

if (nonCharacters.search(/[^a-zA-Z]+/)) {
  alert("There are non characters.");
}

/正規表現の開始と終了は、それが正規表現であることを意味します。 search 関数は文字列と正規表現の両方を受け取るため、/は、正規表現を指定するために必要です。

MDN Docs から、関数は-1一致するものがない場合。

また、これはonlya-z、A-Zでのみ機能することに注意してください。スペースがある場合、失敗します。

23
/^[a-zA-Z]+$/ 

頭の上から。

編集:

または、奇妙に見えるリテラル構文が気に入らない場合は、このようにすることができます

new RegExp("^[a-zA-Z]+$");
9
Ollie Edwards

POSIXブラケット式(Javascriptでサポートされていない)を使用すると、次のように実行できます。

/[:alpha:]+/

アルファベット文字A〜Zまたはa〜z。

または

/^[[:alpha:]]+$/s

スペースと厳密に一致します。

2
RobertPitt