1
var str = 'somedomain.com';
var str2 = 'the string that contains test.somedomain.com';
str2.indexOf(str);
的問題是,它匹配的子域,但我需要與之相匹配的只有一個確切的域,而子域匹配如何做到這一點?的indexOf - 如何找到沒有一個子域(JavaScript)的域
var str = 'somedomain.com';
var str2 = 'the string that contains test.somedomain.com';
str2.indexOf(str);
的問題是,它匹配的子域,但我需要與之相匹配的只有一個確切的域,而子域匹配如何做到這一點?的indexOf - 如何找到沒有一個子域(JavaScript)的域
您可以在域外創建一個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);
可以忽略逗號嗎? –
我在第一個解決方案中添加了@LunenLumen。對於第二個,你需要替換我認爲的字符串中的所有逗號 – baao