让我有一个字符串,如给我发送电子邮件至info@domain.com 。
我想验证字符串(使用Regex),如
一些验证字符串
一些无效的字符串
直到现在我正在尝试
脚本
var str = 'email me at info@domain.com';
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;
}
它工作正常,但我想做一个正则表达式。
答案 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 info@domain.com';
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 info@domain.com\ncall me at 9874456734\nI am fine\n\nemail me at info@stackoverflow.com';
var m;
while ((m = re.exec(str)) !== null) {
document.getElementById("res").innerHTML += m[0] + "<br/>";
}
<div id="res"/>