正则表达式在寻找Alpha字符时拆分数字字符串
Regex split string of numbers at finding of Alpha Characters
好的正则表达式是最让我困惑的东西之一。我试图在Javascript中做到这一点。我有一个搜索字段,用户将输入一系列字符。代码是:
999 mc111还是
999 mc总是有2个Alpha字符。但是开头可能有1-4个字符,结尾也可能有1-4个字符。
如果代码以Alpha字符结束,则运行某个ajax脚本。如果有数字+ 2个字母+数字....它运行一个不同的ajax脚本。
我的挣扎是我知道'd是2位数....但它可能并不总是2位数。
那么我的正则表达式代码将它分割成一个数组。什么的。
我认为正确的正则表达式(/^ ([0 - 9]+)([a-zA-z] +)([0 - 9] +)/美元
但是我如何确保它的中间只有2个alpha字符?
谢谢
您可以使用正则表达式/'d$/
来确定它是否以小数结尾。
'd
匹配一个十进制字符,$
匹配字符串的结尾。/
字符将表达式括起来。
试着在你的javascript控制台中逐行运行。
var values = ['999MC111', '999MC', '999XYZ111']; // some test values
// does it end in digits?
!!values[0].match(/'d$/); // evaluates to true
!!values[1].match(/'d$/); // evaluates to false
要指定标记的确切数量,你必须使用括号{},所以如果你知道有2个字母标记你放{2}
,如果你知道可以有0-4个数字你放{0,4}
^([0-9]{0,4})([a-zA-z]{2})([0-9]{0,4})$
上面的RegEx计算如下:
- 999mc -> true
- 999mc111 -> true
- 999mac111 -> false
- mc -> true
通过将子表达式分组到括号
中来将表达式拆分为捕获组。如下链接所示:
http://regexr.com?2vfhv你得到这个:
3个捕获组:
第1组:([0-9]{0,4})
第二组:([a-zA-z]{2})
第3组:([0-9]{0,4})
正则表达式/^'d{1,4}[a-zA-Z]{2}'d{0,4}$/
匹配1-4个数字的序列,后面跟着一系列2个alpha字符,后面跟着另一个0-4个数字的序列。
这个regex: /^'d{1,4}[a-zA-Z]{2}$/
匹配1-4个数字的序列,后面只跟着2个alpha字符。
好,所以我并不关心中间的两个字符....真正重要的是第一组数字和最后一组数字(如果有的话)。
基本上我只需要处理数字。所以我这样做:
var lead = '123mc444'; //For example purposes
var regex = /('d+)/g;
var result = (lead.match(regex));
var memID = result[0]; //First set of numbers is member id
if(result[1] != undefined) {
var leadID = result[1];
}
- 如何拆分一个整数和产生的所有数字来创建一个新数字
- Javascript 正则表达式在特定单词或数字之后拆分
- 添加逗号以拆分数字
- 如何将数字拆分为单个数字
- Regex-我需要在第一个数字后面拆分一个字符串
- JavaScript:仅按字符或按字符+数字(如果存在)拆分字符串
- 在
处拆分字符串,后跟一个数字 - 正则表达式在开始时将字符串与(逗号分隔的)数字匹配,并拆分为数字和其余
- JavaScript - 拆分,在给定数字后选择全部
- 从字符串中拆分单词,数字,并将其作为JavaScript中的2D数组
- 从字符串中拆分字母和数字部分的最佳方法是什么
- 将字符串拆分为具有交替一位和两位数字的数组
- 在出现的第一个数字时拆分字符串
- 将字符串拆分为数值和非数字正则表达式
- javascript在非字母数字上拆分,并在开始时保持删除
- 在同时包含数字和字母的字符串中拆分数字和字母
- 将拆分数组中的元素设为数字
- Javascript或JQuery拆分字母数字字符串
- 拆分数字和字母的JavaScript正则表达式
- 正则表达式在寻找Alpha字符时拆分数字字符串