1

現在、正規表現について勉強中です。2条件式の書き方がよくわからなかった/理解できなかった。または、ケースごとに2つの正規表現を書く必要がありますか?

私が取り組んでいるのは、

HTMLフィールドにtxtMobileフィールドがあります

<label for="txtMobile">Mobile:*</label>
<input id="txtMobile" type="text" name="txtMobile" size="22" maxlength="22">

私のjavascriptファイルで、次のルールで式を作成しようとしています

フォーマット: (+##)###-###-####/#### 拡張子はオプションで、国コードなしで始まる場合があります。

単一の式で行う方法はありますか、または JavaScript ファイルで各ケースの if 条件を入力する必要がありますか?

これが私がしたことです/^([0-9]{3})\-([0-9]{3})\-([0-9]{4})\/([0-9]{4})$/

4

3 に答える 3

1

他の人が言ったよう?に、進行中のトークンの 0 または 1 に一致します。

/^(\(\+\d{1,3}\))?(\d{3}-){2}\d{4}(\/\d{3,4})?$/

一致:

999-999-9999
(+1)999-999-9999
(+11)999-999-9999
(+111)999-999-9999
999-999-9999/000
(+1)999-999-9999/000
(+11)999-999-9999/000
(+111)999-999-9999/000
999-999-9999/0000
(+1)999-999-9999/0000
(+11)999-999-9999/0000
(+111)999-999-9999/0000

私はこのツールを使うのが好きです: http://gskinner.com/RegExr/

Javascript と完全に同一ではない Flash のバージョンの RegEx を実装しています。しかし、ほとんどの作業には十分近いです。他の誰かが JS RegEx ツールを提案できれば、さらに良いでしょう。

于 2013-11-06T20:44:08.217 に答える
0

?オプションのアトムを示すために使用します。

/^(\(+[0-9]{2}\))?...

ここで、前のグループをオプションにしました。括弧がいくつかのアトムを単一のアトムにグループ化する方法に注目してください。リテラルの括弧はエスケープされます。は、フォーマットに続くオプションの国コードを許可する正規表現の開始です。オプションの拡張を許可することは、読者への演習として残されています。:)

于 2013-11-06T20:41:00.940 に答える