2012-02-18 11 views
7

Yani, sınırlayıcılı bir dizim var | , bölümlerden biri "123" içeriyor, bu bölümü bulup içeriklerini yazmanın bir yolu var mı? PHP gibi bir şey (ama Javascript) ve sonra '123' bulmak için bir döngü olabilir? :/Javascript - equivilent patlayabilir?

+3

olası yinelenen (http://stackoverflow.com/questions/4514323/javascript-equivalent-to-explode) –

+0

Olası [Javascript Eşdeğeri PHP Explode()] 'nın kopyası (https://stackoverflow.com/questions/4514323/javascript-equivalent-to-php-explode) –

cevap

18
var string = "123|34|23|2342|234", 
    arr = string.split('|'), 
    i; 

for(i in arr){ 
    if(arr[i] == 123) alert(arr[i]); 
} 

Veya: string bazlı manipülasyon ve işlevleri hakkında daha fazla bilgi için

for(i in arr){ 
    if(arr[i].indexOf('123') > -1) alert(arr[i]); 
} 

bkz:

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String

+0

"123" ile bölümü nasıl bulurum ve nasıl olursa olsun bölümdeki: o? – King

+0

:) Bölümde bunun sadece 123'den fazlası var, bu yüzden Javascript için bir strstr() denkliği var mı? – King

+0

'match()' işlevini kullanın; cevabımı aşağıya bakın. – wecsam

3

Sen JavaScript split() kullanabilirsiniz:

var txt = "123|1203|3123|1223|1523|1243|123", 
    list = txt.split("|"); 

console.log(list); 

for(var i=0; i<list.length; i++){ 
    (list[i]==123) && (console.log("Found: "+i)); //This gets its place 
} 

CANLI DEMO .joinimplode eşdeğer ise http://jsfiddle.net/DerekL/LQRRB/

1

.split, explode eşdeğerdir.

var myString = 'red,green,blue'; 
var myArray = myString.split(','); //explode 
var section = myArray[1]; 
var myString2 = myArray.join(';'); //implode 
1

Bu yapmalıyım:

var myString = "asd|3t6|2gj|123hhh", splitted = myString.split("|"), i; 
for(i = 0; i < splitted.length; i++){ // You could use the 'in' operator, too 
    if(splitted[i].match("123")){ 
     // Do something 
     alert(splitted[i]); // Alerts the entire contents between the original |'s 
     // In this case, it will alert "123hhh". 
    } 
} 
[Explode için JavaScript Eşdeğeri] arasında