我试图找出JavaScript正则表达式仅匹配完整单词,但如果它是电子邮件或网址的一部分,则排除该单词。
例如,我们有文字 以下是我的代码
var str ='
this is my myname
my email is myname@email.com
another email is support@myname.com
and my site is www.myname.com.au';
function match(text, str) {
var pattern = "(?=\\s|^|\\b)(?:" + text + ")(?=\\s|$|\\b)";
var regexp = new RegExp(pattern, "ig");
while ((match = regexp.exec(str)) != null) {
var offsetStart = parseInt(match.index);
var offsetEnd = parseInt(regexp.lastIndex);
var selectText = match.toString();
console.log("offset start " + offsetStart + " offset end " + offsetEnd + " matched text " + selectText);
}
}
match('myname', str);
我想要的是我希望匹配文字' myname'在第1行中,排除文字' myname@email.com',' support@myname.com'和' www.myname.com.au'。
谢谢,
答案 0 :(得分:0)
这不是一个强有力的解决方案,但它可以被认为是一个很好的起点。
function format(name){
var nameStr="house,car,table";
if(nameStr.indexOf(name)==-1)return -1;
nameStr+=",";
nameStr=nameStr.replace(name+",","");
return nameStr.substring(0,nameStr.length-1);
}
console.log(format("house"));
console.log(format("table"));