2015-05-21 6 views
-3

Позвольте мне написать строку, как напишите мне на [email protected].If-ElseIf-Else Состояние в Regex

Я хочу проверить строку (с помощью Regex) как

  1. строка содержит электронную почту или URL то строка должна содержит domain.com
  2. строка содержит вызов то строка должна содержит 10-значный номер

Некоторые Validate Строка

  1. напишите мне на [email protected]
  2. позвоните мне по телефону 9874456734
  3. Я прекрасно

Некоторые Invalid Строка

  1. напишите мне по адресу [email protected]

До сих пор я пытаюсь

Script

var str = 'email me at [email protected]'; 
var matchEmailUrl = str.match(/email|url/); 
var matchCall = str.match(/call/) 
var validation = !matchEmailUrl && !matchCall;  

if(!validation){ 
    if(matchEmailUrl) 
     validation = str.match(/domain\.com/) != null; 
    else if(matchCall) 
    validation = str.match(/\d{10}/) != null; 
} 

Он отлично работает, но я хочу сделать это одно выражение регулярных выражений.

+4

ok. где ваш код? – WhiteLine

+0

Мы могли бы использовать некоторый код. Что вы пробовали? Или вы просто просите нас сделать это за вас? – Thalsan

+0

Действительно ли пустая строка? –

ответ

1

Вы можете использовать один регулярное выражение для проверки ваших строк:

var re = /.*?\b(?:email|url)\b.*?domain\.com|\bcall\b.*?\d{10}|^(?:(?!\b(?:email|url)\b).)+$/i; 

использовать его как:

var re = /.*?\b(?:email|url)\b.*?domain\.com|\bcall\b.*?\d{10}|^(?:(?!\b(?:email|url)\b).)+$/i; 
 
var str = 'email me at [email protected]'; 
 
if (re.test(str)) 
 
    alert(true);

Вот пример того, что это регулярное выражение будет соответствовать:

var re = /.*?\b(?:email|url)\b.*?domain\.com|\bcall\b.*?\d{10}|^(?:(?!\b(?:email|url)\b).)+$/igm; 
 
var str = '\nemail me at [email protected]\ncall me at 9874456734\nI am fine\n\nemail me at [email protected]'; 
 
var m; 
 
    
 
while ((m = re.exec(str)) !== null) { 
 
    document.getElementById("res").innerHTML += m[0] + "<br/>"; 
 
}
<div id="res"/>

+0

Вы также можете добавить '\ b' around' domain \ .com', чтобы убедиться, что мы не сопоставляем 'ddomain.comand'. –

+0

Помогло ли вам или вам нужна дополнительная помощь? –

+0

поясните пожалуйста. –

Смежные вопросы