2017-02-22 24 views
1

Я в настоящее время работаю со следующим регулярным выражением, чтобы соответствовать телефонному номерумне нужно регулярное выражение для номера телефона, который не принимает 0 в качестве первой цифры 3-значного кода города США

'\\([1-9]{3}\\)\\s{1}[0-9]{3}-[0-9]{4}' 

Но вышеописанному модель не позволяет 0 в первые 3 цифры, и когда я могу изменить его

'\\([0-9]{3}\\)\\s{1}[0-9]{3}-[0-9]{4}' 

он принимает 0 в качестве первой цифры. Я хотел бы создать регулярное выражение, которое не принимало бы 0 для первой цифры, но принимало бы остальные цифры.

Я изменил регулярные выражения, которые я думаю, будет моим потребностям, но я не совсем уверен (никогда не делал регулярное выражение шаблон) и не знаете, как проверить его на regex101

'\\([1-9]{1}[0-9]{2}\\)\\s{1}[0-9]{3}-[0-9]{4}' 

если кто-то может помочь меня, как в случае, если вы могли бы указать, если я пойду в правильном направлении, это было бы потрясающе.

Я искал обратный вопрос о том, что в этом вопросе, ответы на это удостоверяются, что число начинается с 0, но я я искал обратную реализацию:

Javascript Regex - What to use to validate a phone number?

Спасибо, Виджай

+0

номер телефона пример? –

+0

Возможный дубликат [Javascript Regex - что использовать для проверки номера телефона?] (Http://stackoverflow.com/questions/14639973/javascript-regex-what-to-use-to-validate-a-phone-number) – Brian

+0

@Edulynch номер телефона: 208-123-4567 280-123-4567 – Vijay

ответ

3

Попробуйте это:

/\([1-9]\d\d\)\s\d{3}-\d{4}/; 

Или:

new RegExp('\\([1-9]\\d\\d\\)\\s\\d{3}-\\d{4}'); 

Объяснение:

\( : open paren 
[1-9] : a digit (not 0) 
\d\d : 2 digits (including 0) 
\) : close paren 
\s : one space 
\d{3} : 3 digits (including 0) 
-  : hyphen 
\d{4} : 4 digits (including 0) 
+0

Это отличное объяснение, но я не уверен, правильно ли я тестирую его на www.regex101.com номер телефона, который я вводил, чтобы проверить в соответствии с вашим объяснением, является (200) 123-4567, и тест не удается, я что-то не так? – Vijay

+0

@ Vijay Здесь он работает https://www.regex101.com/r/IEvvhX/1. –

+0

@Vijay Примечание: если вы используете это регулярное выражение для проверки правильности строки ('regex.test (string)'), то вы можете захотеть добавить привязки в beginig ('^') и в конец ('$') следующим образом: '/^\ ([1-9] \ d \ d \) \ s \ d {3} - \ d {4} $ /'. –

1

Это должно работать.

Regexp:

[1-9]\d{2}\-\d{3}\-\d{4} 

Вход:

208-123-4567 
099-123-4567 
280-123-4567 

Выход:

208-123-4567 
280-123-4567 

JavaScript код:

const regex = /[1-9]\d{2}\-\d{3}\-\d{4}/gm; 
 
const str = `208-123-4567 
 
099-123-4567 
 
280-123-4567`; 
 
let m; 
 

 
while ((m = regex.exec(str)) !== null) { 
 
    // This is necessary to avoid infinite loops with zero-width matches 
 
    if (m.index === regex.lastIndex) { 
 
     regex.lastIndex++; 
 
    } 
 
    
 
    // The result can be accessed through the `m`-variable. 
 
    m.forEach((match, groupIndex) => { 
 
     console.log(`Found match, group ${groupIndex}: ${match}`); 
 
    }); 
 
}

См: https://regex101.com/r/3DKEas/1