我有像这样的字符串
XXX-1234
XXXX-1234
XX - 4321
ABCDE - 4321
AB -5677
所以开头会有字母。然后会有连字符。然后是 4 位数字。字母数量可能不同,但数字数量相同 = 4
现在我需要匹配数字的前 2 个位置。所以我尝试了一个漫长的过程。
temp_digit=mystring;
temp_digit=temp_digit.replace(/ /g,'');
temp_digit=temp_digit.split("-");
if(temp_digit[1].substring(0,2)=='12') {}
现在有没有使用正则表达式/模式匹配的过程,以便我可以有效地完成它。类似于 string.match(regexp)我对正则表达式模式很愚蠢。如何从上述字符串的 4 位数字中找到前两位数字?另外,如果该解决方案可以匹配没有连字符的数字(如 XXX 1234
),那就太好了,但这是可选的。
最佳答案
尝试使用正则表达式来查找至少一个字母 [a-zA-Z]+
,如有必要,后跟一些空格 \s*
,后跟连字符-
,如有必要,后跟一些空格 \s*
。然后它会匹配模式后的前两位数字 \d{2}
。:
[a-zA-Z]+\s*-\s*(\d{2})
关于javascript - 如何在javascript中有效匹配字符串中间的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33645257/