0

私のデータベースで、10 桁の繰り返し番号 (5555555555 または 7777777777) の電話番号を送信する人々の問題を発見したので、10 回繰り返される番号を正規表現で検索する方法を見つけたいと思いました。

4

3 に答える 3

1

mysql クエリを探している場合、1 つのメソッドが複数の OR を持つ単一のクエリである可能性があります。

SELECT * from users WHERE phone_number='1111111111' OR phone_number='2222222222' OR phone_number='333333333' OR phone_number='4444444444' OR phone_number='5555555555' OR phone_number='666666666' OR phone_number='7777777777' OR phone_number='8888888888' OR phone_number='999999999'

この問題が十分に重大である場合、javascript または php で電話入力を検証する簡単な方法があります。唯一の問題は、ユーザーが最初に偽の電話番号を作成することです。

于 2013-10-24T15:29:12.983 に答える
1

最も美しい正規表現ではありませんが、機能します

((?:1){10}|(?:2){10}|(?:3){10}|(?:4){10}|(?:5){10}|(?:6){10}|(?:7){10}|(?:8){10}|(?:9){10}|(?:0){10})

http://regex101.com/r/mK7iH6

于 2013-10-24T15:06:53.067 に答える
0

これは、switch ステートメントとして、正規表現を使用せずに実装するのが最適だと思います。

switch (number) {
        case 1111111111:  return true;
                 break;
        case 2222222222:  return true;
                 break;
        case 3333333333:  return true;
                 break;
        case 4444444444:  return true;
                 break;
        case 5555555555:  return true;
                 break;
        case 6666666666:  return true;
                 break;
        case 7777777777:  return true;
                 break;
        case 8888888888:  return true;
                 break;
        case 9999999999:  return true;
                 break;
        case 0000000000: return true;
                 break;
        default: return false;
                 break;

これの理由は (私の知る限り) より高速であり、正規表現は非常に厄介です。

@"[(1111111111)(2222222222)(3333333333)(4444444444) etc (0000000000)]"
于 2013-10-24T15:07:14.263 に答える