it-swarm-ja.tech

「A-Z、a-z、0-9、_」および「。」に一致する正規表現

入力にA〜Z、a〜z、0〜9、_文字、およびドット(。)のみを許可する正規表現が必要です。

私は試した:

[A-Za-z0-9_.] 

しかし、うまくいきませんでした。どうすれば修正できますか?

28
Alon Gubkin
^[A-Za-z0-9_.]+$

文字列の最初から最後まで、これらの文字の1つ以上に一致します。

編集:

^および$は、lineの先頭と末尾に一致することに注意してください。複数行が有効な場合、これは1つの行が一致することを意味しますが、完全な文字列ではありません。

文字列の先頭に\Aを使用し、末尾に\zを使用します。

例: http://msdn.Microsoft.com/en-us/library/h5181w5w(v = vs.110).aspx

55
Ikke

あなたが与えたものから作業して、私はあなたがリストしたもの以外の文字を入力していないことを確認したいと思うでしょう。そのためには、リストされている文字以外の文字を検索する必要があります。

[^A-Za-z0-9_.]

そして、あなたのコードのマッチでそれを使ってください:

if ( /[^A-Za-z0-9_.]/.match( your_input_string ) ) {
   alert( "you have entered invalid data" );
}

どのようだ?

5
Pete Duncanson

たぶん、何が機能しなかったのか、あなたがどの環境にいるのかをより正確に指定する必要があります。

ドットが文字クラスで特殊であるという主張に関しては、これはすべてのプログラミング環境で当てはまるわけではありません。たとえば、次のPerlスクリプト

use warnings;
use strict;

my $str = '!!!.###';
$str =~ s/[A-Za-z_.]/X/g;
print "$str\n";

生産する

!!!X###
0

正規表現:/^[a-zA-Z0-9_.]$/i

これは動作します

0
Prem Sai

単に^[\w.]+を使用して、A〜Z、a〜z、0〜9、および_を一致させることができます。

0
Austine Iyke