场景描述:
Java中可以使用两个参数,将字符串切分成固定的几部分,后面的部分则不关心内部是否有切分的表达式;但是JavaScript中传入的两个参数达不到这样的效果,JavaScript中是将整个全部按照要切分的参数切分好,返回指定个数。
Java中方法:
public String[] split(String regex, int limit)
regex -- 正则表达式分隔符。
limit -- 分割的份数。
示例:
public static void main(String[] args) {
String s="CREATE_TIME:[2017-08-01T00:00:00Z TO 2017-09-01T00:00:00Z}";
String[] ss=s.split(":",2);
for(String a:ss) {
System.out.println(a);
}
}
CREATE_TIME
[2017-08-01T00:00:00Z TO 2017-09-01T00:00:00Z}
JavaScript中的方法:
stringObject.split(separator,howmany)
separator -- 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany -- 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。
示例:
var s="CREATE_TIME:[2017-08-01T00:00:00Z TO 2017-09-01T00:00:00Z}";
var separator=":";
var words=s.split(separator,2);
for(var i=0;i<words.length;i++){
console.log(words[i]);
}
CREATE_TIME
[2017-08-01T00
要想达到Java中的效果,自己拼接,使用时,使用数组中的第一个和第二个即可。如下:
var s="CREATE_TIME:[2017-08-01T00:00:00Z TO 2017-09-01T00:00:00Z}";
var separator=":";
var words=s.split(separator);
for(var i=2;i<words.length;i++){
words[1]+=separator+words[i];
}
console.log(words[0]);
console.log(words[1]);
CREATE_TIME
search.js:85 [2017-08-01T00:00:00Z TO 2017-09-01T00:00:00Z}