使用String.split返回的数组

时间:2012-01-07 13:25:00

标签: javascript

data = 'numbersXXXtext';

data = 'XXXtext';


var get = data.split('XXX');
var sum = get[1];

我想永远“文字”。如果data等于numbersXXXtext,则代码可以正常运行,但如果dataXXXtext,那么get[1]将无效。

有谁知道如何解决这个问题?

4 个答案:

答案 0 :(得分:6)

如果字符串中只出现一次XXX,则所需的位将始终是split返回的数组中的最后一项。您可以使用pop获取数组的最后一项:

var a = "numbersXXXtext";
var b = "XXXtext";

console.log(a.split('XXX').pop()); // "text"
console.log(b.split('XXX').pop()); // "text"

答案 1 :(得分:1)

试试这个:

var sum = get.length > 1 ? get[1] : get[0]

答案 2 :(得分:1)

奇怪,我刚试过你的代码,而且它正在运行。 (http://writecodeonline.com/javascript/) 你确定你没有错过什么吗?

    data = 'numbersXXXtext';
   //data = 'XXXtext';
    var get = data.split('XXX');

    document.write(get[1]);
    document.write("</br>");
    document.write(get);
    document.write("</br>");

我的两个字符串中都没有未定义

答案 3 :(得分:1)

使用子字符串的替代方法:

var data = 'numbersXXXtext';
var value = data.substring(data.indexOf('XXX') + 'XXX'.length);