我有点急于我需要解决的问题如下所述
我有一个字符串,如DropDown1_2_3_4或radioButton2_4_6_8
我需要获得如下结果:1,2,3,4或2,4,6,8
var id = $(this).attr('id');
var main = id;
main = main.substring(main.indexOf('_') + 1).replace(/[^\d]/g, '');
这给了我234或468 我需要的是1,2,3,4或2,4,6,8
此致
答案 0 :(得分:1)
如果要将它们分离为变量,则最好使用数组
var id = $(this).attr('id');
var main = id;
var main = id.replace(/^[\D]+/i, '').split('_')
alert(main[0])//1,2,3 etc
答案 1 :(得分:0)
使用先行断言:
'DropDown1_2_3_4'.match(/\d+(?=_)|_\d+/g).map(function(x) { return x.replace('_', ''); })
// => ["1", "2", "3", "4"]
'radioButton2_4_6_8'.match(/\d+(?=_)|_\d+/g).map(function(x) { return x.replace('_', ''); })
// => ["2", "4", "6", "8"]
var id = $(this).attr('id');
var main = id.match(/\d+(?=_)|_\d+/g).map(function(x) { return x.replace('_', ''); });
Javascript正则表达式不支持lookbehind断言。
答案 2 :(得分:0)
你能试试吗,
var id = $(this).attr('id'); //'DropDown1_2_3_4';
var main = id;
main = main.replace( /^\D+/g, '').replace(/_/g,',');
alert(main);
演示1:http://jsfiddle.net/DK8Kk/
var id = 'DropDown1_2_3_4';
var main = id;
main = main.replace( /^\D+/g, '').split('_');
alert(main);
for (var i in main) {
alert(main[i]);
}