我收到了以下格式的变量:
var fubar = e2s2
现在,字母始终相同,但数字确实发生了变化。数字只能是 1-9。最终结果我需要这样的东西:
var foo = e2
var bar = s2
我也会满足于这个数字。我只需要有数字。
如果它始终采用这种形式,则不需要 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。
干杯
这与split method
(?![1-9])
或者
(?=[^1-9])
笔记:
用于(?![1-9]|^)
避免包含在结果数组中的空格
var fubar = 'e2s2' ;
var foo = fubar.substr(0,2) ;
var bar = fubar.substr(2);
使用正则表达式替换。以下代码将起作用
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];
如果元素的格式总是一个非数字字符后跟一个数字字符,则使用
elements = str.split(/(?=\D)/)
获取数组中的完整元素;并仅获取数字(数字)数组,请使用
(numbers = str.split(/\D/)).splice(0, 1);