JavaScript - 等价于explode的函数?

7
所以,我有一个带有分隔符 | 的字符串,其中一个部分包含“123”,有没有办法找到这个部分并打印内容? 像 PHP 的 explode(但是 JavaScript),然后循环查找 '123' ? :/

3
可能重复的问题:Javascript中的Explode等效方法 - Michael Berkowski
可能是Javascript Equivalent to PHP Explode()的重复问题。 - James K.
4个回答

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

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

或者:

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

或者:

arr.forEach((el, i, arr) => if(arr[i].indexOf('123') > -1) alert(arr[i]) }

或者:

arr.forEach((el, i, arr) => if(el == '123') alert(arr[i]) }

或者:

const arr = "123|34|23|2342|234".split('|')

if(arr.some(el=>el == "123")) alert('123')

更多有关于 字符串数组 成员函数的信息。


我该如何定位包含“123”的部分并输出该部分中的其他内容呢? - Goulash
这个部分不仅仅包含123,那么在Javascript中是否有类似于strstr()的等效函数呢? - Goulash
使用match()函数;请参见下面的答案。 - wecsam
@King请查阅JavaScript字符串对象及其相关的方法属性的文档... - Alex
`var string = "123 and stuf|34|23|2342|234", arr = string.split('|'), i; for(i in arr){ if(arr[i].search(123) != -1) alert(arr[i]); } ` - Goulash

3
你可以在JavaScript中使用split()函数:
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
}

实时演示:http://jsfiddle.net/DerekL/LQRRB/


1

.split 等价于 explode,而 .join 则相当于 implode

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

1

这应该可以解决问题:

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". 
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接