字符串:
'29 July, 2014, 30 July, 2014, 31 July, 2014'
如何在字符串中每隔第二个逗号分割?以便我的结果为:
[0] => 29 July, 2014
[1] => 30 July, 2014
[2] => 31 July, 2014
字符串:
'29 July, 2014, 30 July, 2014, 31 July, 2014'
如何在字符串中每隔第二个逗号分割?以便我的结果为:
[0] => 29 July, 2014
[1] => 30 July, 2014
[2] => 31 July, 2014
或者这个:
var text='29 July, 2014, 30 July, 2014, 31 July, 2014';
result=text.match(/([0-9]+ [A-z]+, [0-9]+)/g);
更新:
您可以使用此正则表达式查找所有匹配项:
// result=text.match(/[^,]+,[^,]+/g);
var text='string1, string2, string3, string4, string5, string 6';
result=text.match(/[^,]+,[^,]+/g);
/*
result:
string1, string2
string3, string4
string5, string 6
*/
您可以使用正则表达式进行拆分。例如:
var s = '29 July, 2014, 30 July, 2014, 31 July, 2014';
s.split(/,(?= \d{2} )/)
返回值
["29 July, 2014", " 30 July, 2014", " 31 July, 2014"]
如果你所有的日期都是两位数字的天数,比如7月1日将打印为01 July,则这个方法可以正常工作。
该正则表达式使用了前瞻断言,因此它的含义是“以逗号分隔,如果接下来的四个字符为[空格][数字][数字][空格]”。
编辑 - 我刚刚改进了这个方法,现在它可以处理2014年7月1日和2014年7月01日两种格式:
s.split(/,(?= \d{1,2} )/)
s.split(/, (?=\d{1,2} )/)
["29 July, 2014", "30 July, 2014", "31 July, 2014"]
string1,string2,string3,string4,string5,string6
。但是我的方法可以解析它 ;) - SlyBeaver不确定是否可以在一行代码中完成,但是一个解决方法是在每个逗号上进行拆分,然后连接连续的值。
例如:
var str = '29 July, 2014, 30 July, 2014, 31 July, 2014';
var list = str.split(",");
var list2 =[];
for (var i=0;i<list.length; i+=2){
list2.push(list[i]+","+list[i++]);
}
String.prototype.splitEvery = function ( splitter, every ){
var array = this.split( splitter), newString = '', thisSplitter;
$.each( array, function( index, elem ){
thisSplitter = ( index < array.length - 1 || index % every === 0 ) ? '' : splitter;
newString += elem + thisSplitter;
});
return newString;
};
var dateString = '29 July, 2014, 30 July, 2014, 31 July, 2014';
dateString.splitEvery( ',', 2 );
第一个参数是分隔符,第二个参数是每个之间的数量。
结果为:
29 July 2014, 30 July 2014, 31 July 2014
var str = '29 July, 2014, 30 July, 2014, 31 July, 2014'
var parts = str.split(',')
var answer = []
for (var i=0; i<parts.length; i++) {
if (i < 1) continue;
if (i % 2 == 1) {
answer.push(parts[i-1] + ',' + parts[i]);
}
}
console.log(answer)
这不是一个重构的解决方案,但它可以工作:
var $dates = '29 July, 2014, 30 July, 2014, 31 July, 2014';
$dates = $dates.split(',');
$result = [];
$dateValue = '';
for($i=0 ; $i<$dates.length ; $i++) {
if($i % 2 != 0 && $i > 0) {
$dateValue += ','+$dates[$i];
$result.push($dateValue);
$dateValue = '';
} else {
$dateValue += $dates[$i];
}
}
console.log($result);
[other_dates] => 'stringstringstring'
。 - pjmil