如何使用Jquery分割像45frank这样的字符串

Ste*_*sen 0 php regex jquery

我有一个我的网站的一部分,我使用复选框显示隐藏信息divs onclick.我需要能够切换一个继续按钮以及隐藏的div(显示/隐藏)或(切换),同时收集字符串前面的2位数字,以便在添加到购物车时用作ID.我想也许是使用reg exp的jquery split()函数.我如何分割像45frank这样的字符串,所以它会像id = 45和val = frank.

use*_*716 7

var str = "45frank";

var parts = str.match(/(\d+)(\D+)/).slice(1);
Run Code Online (Sandbox Code Playgroud)

这假设第二部分不包含任何数字.

它返回一个数组:

["45", "frank"]
Run Code Online (Sandbox Code Playgroud)

如果第二部分可能有一个数字,你可以这样做:

var str = "45fr9ank";

var parts = str.match(/(\d+)(\D.+)/).slice(1);
Run Code Online (Sandbox Code Playgroud)

导致:

["45", "fr9ank"]
Run Code Online (Sandbox Code Playgroud)

然后只需添加您想要的文本:

parts[0] = "id=" + parts[0]
parts[1] = "val=" + parts[1]
Run Code Online (Sandbox Code Playgroud)

或者如果你想要一个字符串结果(我无法从问题中得知)你可以这样做:

var str = "45fr9ank";

str = str.replace(/(\d+)(\D.+)/,function(str,s1,s2){ 
             return "id=" + s1 + " val=" + s2; 
});
Run Code Online (Sandbox Code Playgroud)

结果是:

"id=45 val=fr9ank"
Run Code Online (Sandbox Code Playgroud)