var str = "123,234,345,456,567,678" alert(str.match(/\d+/g).slice(0,3).join(",")); ~~~~ 这是最好的感觉,忘了slice方法了
var str = "123,234,345,456,567,"; var sr = []; var a = [str]; for(var i=1;i<16;i++) a = a.concat(a); str = a.join(''); sr[sr.length] = ["测试字数:",str.length].join('');//方法1 var ts = new Date(); var re = /[^,]+/g var source = re.test(str)?Array.prototype.slice.call(str.match(re),0,3):""; sr[sr.length] = ["方法1: ",new Date()-ts,"ms"," 结果:",source].join(''); //方法2 var ts = new Date(); var source = /^((?:[^,]*,){2}[^,]*)/.test(str)?RegExp.$1:""; sr[sr.length] = ["方法2: ",new Date()-ts,"ms"," 结果:",source].join('');//方法3 var ts = new Date(); var source = str.split(',').slice(0,3); sr[sr.length] = ["方法3: ",new Date()-ts,"ms"," 结果:",source].join('');alert(sr.join('\n'));很明显直接用正则找前3个是最快的
var str = "123,234,345,456,567,678" alert(str.split(/\,/,3).join(",")); 我喜欢这个.
alert(str.split(/\,/,3));返回的是数组
alert(str.match(/^[^\,]*?\,[^\,]*?\,[^\,]*?(?=\,)/));
alert(str.match(/\d+/g).slice(0,3).join(","));
str = "123,234,345,456,567..."
id=str.match(/^([^,]+[,]){3}/g)
s=id[0].substr(0, 11);
alert(s)
</script>
alert(str.match(/\d+/g).slice(0,3).join(","));
~~~~
这是最好的感觉,忘了slice方法了
var sr = [];
var a = [str];
for(var i=1;i<16;i++)
a = a.concat(a);
str = a.join('');
sr[sr.length] = ["测试字数:",str.length].join('');//方法1
var ts = new Date();
var re = /[^,]+/g
var source = re.test(str)?Array.prototype.slice.call(str.match(re),0,3):"";
sr[sr.length] = ["方法1: ",new Date()-ts,"ms"," 结果:",source].join('');
//方法2
var ts = new Date();
var source = /^((?:[^,]*,){2}[^,]*)/.test(str)?RegExp.$1:"";
sr[sr.length] = ["方法2: ",new Date()-ts,"ms"," 结果:",source].join('');//方法3
var ts = new Date();
var source = str.split(',').slice(0,3);
sr[sr.length] = ["方法3: ",new Date()-ts,"ms"," 结果:",source].join('');alert(sr.join('\n'));很明显直接用正则找前3个是最快的
alert(str.split(/\,/,3).join(","));
我喜欢这个.