2010-09-16 22 views
49

Należy sprawdzić, czy ciąg zawiera inny ciąg znaków, czy nie?ciąg znaków JQuery zawiera sprawdzanie

var str1 = "ABCDEFGHIJKLMNOP"; 
var str2 = "DEFG"; 

Z jakiej funkcji mogę się dowiedzieć, czy str1 zawiera str2?

+0

** Benchmark ** różnych rozwiązań można znaleźć tutaj: http://jsben.ch/#/RVYk7 – EscapeNetscape

+0

Krótka prezentacja wideo różnych rozwiązań: http://stackoverflow.com/questions/1789945/how- to-check-if-one-string-zawiera-inny-podłańcuch-w-javascript – ssmith

Odpowiedz

135

Można użyć funkcji javascript: indexOf.

var str1 = "ABCDEFGHIJKLMNOP"; 
 
var str2 = "DEFG"; 
 
if(str1.indexOf(str2) != -1){ 
 
    console.log(str2 + " found"); 
 
}

+3

to działałoby tylko wtedy, gdy podłańcuch ma ścisłe dopasowanie, nie będzie działało wokół "DEfG", ponieważ f jest małe. –

+5

@RedSwan: możesz przekonwertować ciąg na wielkie lub małe litery, a następnie wykonaj porównanie, problem rozwiązany. – diggersworld

+1

['indexOf()' nie jest obsługiwany w IE <9] (http://stackoverflow.com/q/8848097/339874) – mulllhausen

3
var str1 = "ABCDEFGHIJKLMNOP"; 
var str2 = "DEFG"; 

sttr1.search(str2); 

powróci do położenia spotkania lub -1, jeśli nie stwierdzono.

+0

Byłoby miło zauważyć, że [Array.prototype.search] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search) niejawnie konwertuje ciąg znaków na wyrażenie regularne, które może nie dać pożądanego rezultatu. – cpburnz

4

Spróbuj:

str1.contains(str2) 
+1

CurrentPage.contains nie jest funkcją – mzonerz

+1

Jest tak, ponieważ .contains() jest metodą jQuery. –

0

Jeśli obawy o wielkość liter zmiany sprawę i porównać ciąg.

if (stringvalue.toLocaleLowerCase().indexOf("mytexttocompare")!=-1) 
     { 

      alert("found"); 
     } 
0

prostu na pętli foreach z można porównać, oddzielone do struny

var commaseparateMainstring = 'shekar,jagadeesh,pavan,sai,suneel'; 
    var sustring = 'shekar,gopi,raju,suneel'; 
    //adding comma both sides of main string 
    var main = ',' + commaseparateMainstring + ','; 
    //substring change as array 
    var substingArray = listToArray(sustring, ','); 
    $.each(substingArray, function (index, value) { 
     //calling is exist method here value means each value in substring 
     var isexisted = isExist(main, value) 
     if (isexisted) { 
      //substring item existed 
     } 
     else { 
     } 
    }); 




//isExist method it checks substring exist in mainstring or not 


function isExist(mainString, substring) { 

if (mainString.indexOf(substring) != -1) { 
    return true; 
} 
else { 
    return false; 
} 
} 
0

To działa na mnie

if (~str.indexOf("Yes")) 
0

używam,

var text = "some/String"; text.includes("/") <-- returns bool; true if "/" exists in string, false otherwise.

0

Poniższy kod umożliwia sprawdzenie, czy ciąg "hello" jest zakończony, czy nie w podanym łańcuchu.

if (our_string.indexOf('hello') > -1) 
{ 
    alert("hello found inside our_string"); 
} 

Mam nadzieję, że ta odpowiedź jest przydatna.

Powiązane problemy