var str = 'somedomain.com';
var str2 = 'the string that contains test.somedomain.com';
str2.indexOf(str);
问题是它与子域匹配,但是我需要只匹配一个确切的域,而不匹配子域如何做到这一点?
答案 0 :(得分:1)
您可以在域外创建RegExp
来检查并测试它前面是否有点或字母/数字/下划线。 (也许只检查空间会更容易)
var str = 'somedomain.com';
var str2 = 'the string that contains test.somedomain.com';
let rx = new RegExp("(^|[^\\.\\w])" + str.replace(/\./g, '\\.') + "(,|\\s|$)");
console.log(rx.test(str2))
另一种选择是按空格分割字符串并检查结果数组是否包含字符串:
var str = 'somedomain.com';
var str2 = 'the string that contains test.somedomain.com';
console.log(str2.split(/\s/).indexOf(str) > -1);