我以这种格式递交了一个变量:
var fubar = e2s2
现在,这些字母总是一样的,但数字确实会发生变化。数字只能是1-9。最终结果我需要这样的东西:
var foo = e2
var bar = s2
我也会满足于这个数字。我只需要数字。
答案 0 :(得分:3)
如果总是采用这种形式,则无需RegEx。
var foo = fubar.substr(0,2),
bar = fubar.substr(2);
..或者,如果你只想要数字:
var foo = fubar.substr(1,1),
bar = fubar.substr(3);
如果您真的需要RegEx解决方案,那么:
var digits = fubar.replace(/\d/g, '').split(''),
foo = digits[0],
bar = digits[1];
百万种方式。但除非你确实需要,否则请避免使用RegEx。
干杯
答案 1 :(得分:1)
这与split method
(?![1-9])
或强>
(?=[^1-9])
注意:强>
使用(?![1-9]|^)
来避免包含在结果数组中的空白
答案 2 :(得分:1)
var fubar = 'e2s2' ;
var foo = fubar.substr(0,2) ;
var bar = fubar.substr(2);
答案 3 :(得分:1)
使用regex替换。以下代码可以使用
var fubar = "e2s2";
var a = fubar.replace(/\d/g, function(arg){ return arg+ ","}).split(",");
a.pop(); // removing last item.
var foo = a[0];
var bar = a[1];
答案 4 :(得分:0)
如果元素的格式始终为一个非数字字符,后跟一个数字字符,则使用
elements = str.split(/(?=\D)/)
获取数组中的完整元素;并获得数字(数字)数组,使用
(numbers = str.split(/\D/)).splice(0, 1);