在数字后面分隔变量的正则表达式-jQuery
我收到了以下格式的变量:在数字后面分隔变量的正则表达式-jQuery,jquery,regex,Jquery,Regex,我收到了以下格式的变量: var fubar = e2s2 现在,字母总是一样的,但是数字确实变了。数字只能是1-9。最终结果我需要这样的东西: var foo = e2 var bar = s2 我也只能接受这个数字。我只需要有数字。如果正则表达式始终是这种形式,则不需要正则表达式 var foo = fubar.substr(0,2), bar = fubar.substr(2); …或者,如果您只需要数字: var foo = fubar.substr(1,1), b
var fubar = e2s2
现在,字母总是一样的,但是数字确实变了。数字只能是1-9。最终结果我需要这样的东西:
var foo = e2
var bar = s2
我也只能接受这个数字。我只需要有数字。如果正则表达式始终是这种形式,则不需要正则表达式
var foo = fubar.substr(0,2),
bar = fubar.substr(2);
…或者,如果您只需要数字:
var foo = fubar.substr(1,1),
bar = fubar.substr(3);
如果您确实需要正则表达式解决方案,那么:
var digits = fubar.replace(/\d/g, '').split(''),
foo = digits[0],
bar = digits[1];
有一百万种方法可以做到这一点。但除非你真的需要,否则不要使用正则表达式
干杯这是通过
拆分方法实现的
(?![1-9])
或
(?=[^1-9])
注意:
使用<代码>(?[1-9] ^ ^)< /> >以避免包含在所得数组中的空白空间
var fubar = 'e2s2' ;
var foo = fubar.substr(0,2) ;
var bar = fubar.substr(2);
使用带有replace的正则表达式。下面的代码可以工作
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)/)
获取数组中的完整元素;要仅获取数字(数字)数组,请使用
e2s2
是一个样本值还是什么?你想要什么…一个数字还是两个数字…或者/或者。。。这真的没关系。对于这样一个简单的问题有点复杂,你不觉得吗?但它对任何这样的字符串都有效,例如e2s2e2er2。var digits=fubar.replace(/\d/g')。split(“”)我试过了。问题是它会从生成的字符串中删除数值。@你完全误解了这个问题!他不想只想要我喜欢的数字。为什么不仅仅是:str.split(/\D/)
?在第一个索引处会生成一个空白。。
(numbers = str.split(/\D/)).splice(0, 1);