2015-06-08 87 views
-5

我想評價一個字符串等於這些符號|\~+JavaScript字符串這些符號等於

之一,但這個不起作用:

var a = 'abcted', 
    b = '|\~+'; 

if(a !== b){ 
} 

所以,如果a等於b中的一個符號,評估爲false

+2

你在做一個字符串,字符串比較,或者你想看看是否有任何一個單一字符在b是在字符串a? – vandsh

+0

可能重複[如何檢查一個字符串是否包含另一個子字符串?](http://stackoverflow.com/questions/1789945/how-can-i-check-if-one-string-contains-another-substring) –

+0

請澄清您的具體問題或添加其他詳細信息以確切地突出顯示您的需求。正如目前所寫,很難確切地說出你在問什麼。 – thefourtheye

回答

4

你可以簡單地檢查是否一個字符串包含另一個使用方法indexOf

var b = '|\~+'; 
if (b.indexOf(a) == -1) { 
    // b doesn't contain a 
} 

一個新的建議是功能includes,這將這樣的工作,但(還)沒有作出許多瀏覽器。

var b = '|\~+'; 
if (!b.includes(a)) { 
    // b doesn't contain a 
} 
+0

只有當整個字符串'a'在'b'中時,這纔會起作用。如果'a'是'b'的一個子字符串 – thefourtheye

+0

那是什麼問:*「..如果一個字符串等於這些符號之一」* – GolezTrol

+0

它不是很清楚OP正在嘗試做什麼。如果我們看一下這個例子,'a'不是一個單獨的字符串。 – thefourtheye

3

您可以使用正則表達式來解決這個問題,這樣

if (/[|\\~\+]/.test(a) === false) { 
    // `a` doesn't contain any of the symbols. 
} 

[|\\~\+]檢查是否有任何字符組中的字符是a。如果他們全都不在,那麼test將返回false

console.log(/[|\\~\+]/.test("abcted")); 
// false 
console.log(/[|\\~\+]/.test("abc|ted")); 
// true 
console.log(/[|\\~\+]/.test("abc\\ted")); 
// true 
console.log(/[|\\~\+]/.test("abc~ted")); 
// true 
console.log(/[|\\~\+]/.test("abc+ted")); 
// true 
1

我喜歡儘可能使用正則表達式,但對於那些誰不想要:

var a = 'abcted', 
    b = '|\~+'; 

for (var i = 0, len = b.length; i < len; i++) { 
    if (a.indexOf(b[i])) 
    { 
     alert(b[i]); 
    } 
}