Javascript 在字符串中查找逗号,后跟空格和数字

Javascript 在字符串中查找逗号,后跟空格和数字,javascript,jquery,regex,string,split,Javascript,Jquery,Regex,String,Split,我有一个包含这种格式的字符串 “第1项,第2项,另一项,2004” 我想在2004年拆分字符串,并将其格式化以显示 “第1项,第2项,另一项,2004” 到目前为止,我有这个 var myString = ""; var new_html = []; var splitstring = this.split(','); $.each(splitstring, function (idx) {

我有一个包含这种格式的字符串

第1项,第2项,另一项
,2004”

我想在2004年拆分字符串,并将其格式化以显示

第1项,第2项,另一项
,2004”

到目前为止,我有这个

          var myString = "";
          var new_html = [];
          var splitstring = this.split(',');
               $.each(splitstring, function (idx) {
                   if (new_html.length == 0) new_html.push('<em>' + splitstring[idx] + '</em>');
                   else new_html.push(splitstring[idx]);
               });
                    myString+=("<span class='line"+index+"'>"+new_html.join(',') + "<br/></span>");
var myString=“”;
var new_html=[];
var splitstring=this.split(',');
$.each(拆分字符串、函数(idx){
if(new_html.length==0)new_html.push(“”+splitstring[idx]+“”);
else new_html.push(splitstring[idx]);
});
myString+=(“+new_html.join(”,“)+”
);

这是行不通的,但如果有人能给我指出正确的方向,那就太好了。

尝试使用以下模式:

/, (?=\d)/
这将匹配一个逗号,后跟一个空格,但前提是后面跟一个数字

(?=…)
是一个先行断言。它确保括号内的模式出现在匹配的子字符串之后,但不包括在匹配中

您只需在拆分函数中使用此函数,如下所示:

var splitstring = this.split(/, (?=\d)/);
...

如果您想确保它后面有一个4位数的年份,您可以使用:

/, (?=\d{4})/


根据您的具体需要。

尝试使用以下模式:

/, (?=\d)/
这将匹配一个逗号,后跟一个空格,但前提是后面跟一个数字

(?=…)
是一个先行断言。它确保括号内的模式出现在匹配的子字符串之后,但不包括在匹配中

您只需在拆分函数中使用此函数,如下所示:

var splitstring = this.split(/, (?=\d)/);
...

如果您想确保它后面有一个4位数的年份,您可以使用:

/, (?=\d{4})/


根据您的具体需要。

多行书写,清晰易懂,便于在线解释

var str = "Item 1, Item 2, Another Item, 2004"; 

var arr = str.split(','); //splitting by commas

var num = arr.pop(); //popping the last value '2004'

var result = '<em>'+ arr.join(',') + '</em>' + ',' + num; //joining back again

result: "<em>Item 1, Item 2, Another Item</em>, 2004"
var str=“第1项、第2项、另一项,2004年”;
var arr=str.split(',')//用逗号拆分
var num=arr.pop()//弹出最后一个值“2004”
变量结果=''+arr.join('',')+''+'','+num//再次加入
结果:“项目1、项目2、另一个项目,2004年”

如果
num
是一年,您可以检查as
(num<2099)和&(num>1990)
(只是一个示例),并使用该条件来执行特定的内容编写多行代码,以获得清晰性和解释性

var str = "Item 1, Item 2, Another Item, 2004"; 

var arr = str.split(','); //splitting by commas

var num = arr.pop(); //popping the last value '2004'

var result = '<em>'+ arr.join(',') + '</em>' + ',' + num; //joining back again

result: "<em>Item 1, Item 2, Another Item</em>, 2004"
var str=“第1项、第2项、另一项,2004年”;
var arr=str.split(',')//用逗号拆分
var num=arr.pop()//弹出最后一个值“2004”
变量结果=''+arr.join('',')+''+'','+num//再次加入
结果:“项目1、项目2、另一个项目,2004年”

如果
num
是一年,您可以检查为
(num<2099)和&(num>1990)
(只是一个示例),并使用该条件执行特定的操作您想找出字符串中的最后一个逗号吗?感谢您的回复,理论上不,我只希望最后一个逗号后跟日期。。。这可能是不可能的。但是为什么2004年是一个日期?你想找出字符串中的最后一个逗号吗?谢谢你的回答,理论上不,我想要最后一个逗号,只要它后面跟一个日期。。。这可能是不可能的。但是为什么2004年是一个日期呢?根据OP
我只想要最后一个逗号,如果它后面跟一个日期
我知道2004年不是一个日期我如何将它添加到分割函数中?谢谢每个OP
我只想要最后一个逗号,如果它后面跟一个日期
我知道2004不是一个日期如何将其添加到拆分函数中?谢谢你告诉我这个-我会检查它是否有效谢谢!注意:只有当年份出现在最后一个逗号之后时,这才有效。鉴于OP的评论,我认为这不是我想要的,但它可能已经足够好了。你能告诉我这个吗?我会检查它是否有效,谢谢!注意:只有当年份出现在最后一个逗号之后时,这才有效。鉴于OP的评论,我不认为这是可取的,但它可能已经足够好了。