var str = "Hello World +1 new test Good Morning";
var subStr = "+1 new test";
我希望代碼片段僅在字符串str中找到整個短語(即「+1 new test」)時才返回true。我已經嘗試過regEx和匹配,搜索,測試選項。但是,沒有人爲我工作。它顯示錯誤的'+'。如何使用javascript在字符串中查找確切的子字符串
下面是我使用的是什麼 -
var HVal = "Hello World +1 Good"
var HValNew = HVal.toString().toUpperCase();
var probStr = "Hello World";
var test = probStr.toUpperCase();
var re = new RegExp('\\b'+test+'\\b');
re.test(HValNew);
這工作時probStr是包含字母數字字符的字符串,但是當它有特殊字符如失敗「+」,「?」
我發現我的答案詞組匹配
var str = "Hello World +1 new test Good Morning".toString().toUpperCase();
var subStr = "+1 new test".toString().toUpperCase();
escapeSpecialChars = function(string) {return string.replace(/[-\/\\^$*+?.()|[\]{}]/g, 'x')};
var probStr = escapeSpecialChars(subStr);
var strNew = escapeSpecialChars(str);
var re = new RegExp("\\b"+probStr+"\\b");
re.test(strNew);
這回真的當SUBSTR =「+1新的測試」和假當SUBSTR =「」 + 1新TE」(即在部分短語的情況下, )
'str.indexOf(SUBSTR)> -1' – Satpal
'+'在正則表達式有特殊的意義,你需要逃避使用' \ +' – Viney
我只是建議瀏覽一下['String']的文檔(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String),並且學習這些方法,這將幫助你解決這個問題,以及將來會遇到的更多問題。 – 2017-01-16 06:26:21