我有一个网站的部分,我使用复选框显示隐藏信息divs onclick。 我需要能够切换一个继续按钮以及隐藏的div(显示/隐藏)或(切换),同时收集字符串前面的2位数字,以便在添加到购物车时用作ID。我想也许是使用reg exp的jquery split()函数。我如何分割像45frank这样的字符串,所以它会像id = 45和val = frank。
答案 0 :(得分:7)
var str = "45frank";
var parts = str.match(/(\d+)(\D+)/).slice(1);
这假定第二部分不包含任何数字。
它返回一个数组:
["45", "frank"]
如果第二部分可能有一个数字,你可以这样做:
var str = "45fr9ank";
var parts = str.match(/(\d+)(\D.+)/).slice(1);
导致:
["45", "fr9ank"]
然后只需添加您想要的文字:
parts[0] = "id=" + parts[0]
parts[1] = "val=" + parts[1]
或者,如果您想要一个字符串结果(我无法从问题中得知),您可以这样做:
var str = "45fr9ank";
str = str.replace(/(\d+)(\D.+)/,function(str,s1,s2){
return "id=" + s1 + " val=" + s2;
});
结果:
"id=45 val=fr9ank"
答案 1 :(得分:0)
var id = string.slice(0,2);
var val = string.substr(2);
这里没有理由使用jQuery或正则表达式。仅当数字始终为两位数时才有效。
如果你把它忘记为" 45#Frank"然后你可以使用像
这样的东西var id = string.split("#")[0];
var val = string.split("#")[1];
答案 2 :(得分:0)
由于性能受到影响,我尝试不经常使用reg exp。如果您的字符串格式为2位数字,则为一堆字符。您可以尝试以字符串形式访问该字符串。不幸的是,IE不支持这一点。但我有一个工作,基本上将字符串转换为数组访问前两位数并撤消它。只需使用javascript内置函数,我相信它是.split()。不幸的是我现在没有代码。
但你基本上将字符串转换为数组。访问[0]和[1]数字。从[2]到...字符串长度减去1就是你的字符串。您可以使用其他内置函数的javascript将数组转换回字符串。这种疯狂的原因是因为IE不支持像数组一样访问字符串。
我就是这样做的。或者只使用HTML5自定义属性data-来单独放置信息。