2

私は10桁の北米の電話番号(以下のコーディング)の検証を行っています。数字のみ受け付けています。入力した番号が911、411、または0で始まる場合にエラーがスローされるように、これを変更する方法がわかりません。

string phoneNum = phoneTextBox.Text;
Regex regex = new Regex(@"^\d{10}$");
Match match = regex.Match(phoneNum);
if (!match.Success)
{
   MessageBox.Show(phoneNum + " is not a valid 10 digit phone number (Ex. 6134561234)");
}
4

3 に答える 3

2

これを試して:

Regex regex = new Regex(@"^(?!411|911|0)\d{10}$");
                           +++++++++++++

それらはネガティブ先読みアサーションと呼ばれます。

于 2013-03-25T15:39:57.087 に答える
1

より高度なパターンを使用できます。ここで1つ見つけてみてください-http://regexlib.com/DisplayPatterns.aspx? cattabindex =6&categoryId=7

Regex Tracerを実行してみましたが、パターンのok番号4111111111が見つかりました-^ \ d{10}$。

于 2013-03-25T15:50:06.560 に答える
-1

別の代替手段-電話番号パーサー: http: //www.codeproject.com/Articles/31998/Advanced-Phone-Number-Type-Implementation

于 2013-08-08T16:05:32.550 に答える