0

Asp.Net RegularExpressionValidator を使用して電話番号を検証しています。

チェックは非常に基本的なものです。数字は 10 文字または 11 文字の長さで、すべて数字で、01 または 02 から始まります。

正規表現は次のとおりです。

^0[12]\d{8,9}$

しかし、私は最近、より厳格な規則を適用するサードパーティと協力し始めました. 私の意見では、それは悪い考えです。理由の 1 つは、これらのルールを公開していないことと、ルールが変更される可能性があるため、すべてのパートナーでメンテナンスが行われる可能性があることです。でも...

それらの追加を正規表現に組み込む必要がありますが、どこから始めればよいかわかりません。

彼らは現在、OR で 2 つの個別の正規表現を使用してこれを行っていますが、可能であれば 1 つで行いたいと考えています。

追加の構文により、10 桁の電話番号もこれらの追加規則に準拠する必要があります。10 桁の構文は次のとおりです。

"^01(204|208|254|276|297|298|363|364|384|386|404|420|460|461|480|488|524|527|562|566|606|629|635|647|659|695|726|744|750|768|827|837|884|900|905|935|946|949|963|995)[0-9]{5}$ 

これを達成する方法についてのアイデアはありますか?

4

2 に答える 2

1

正規表現自体で OR を使用してそれらをマージできます。

^(?:01(204|208|254|276|297|298|363|364|384|386|404|420|460|461|480|488|524|527|562|566|606|629|635|647|659|695|726|744|750|768|827|837|884|900|905|935|946|949|963|995)\d{5}|0[12]\d{9})$

編集された 11 桁の正規表現。

于 2013-07-17T11:13:11.420 に答える