data = 'numbersXXXtext';
或
data = 'XXXtext';
var get = data.split('XXX');
var sum = get[1];
我想永远“文字”。如果data
等于numbersXXXtext
,则代码可以正常运行,但如果data
为XXXtext
,那么get[1]
将无效。
有谁知道如何解决这个问题?
答案 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);