Javascript RegEx与字符串匹配

时间:2014-08-21 15:55:02

标签: javascript regex

我需要识别具有确切模板的字符串(可以是两者中的任何一个):

  1. 1个或2个字符(A-Z),然后是数字(无论多少位数)。
  2. K1E或K2E然后跟一个数字(也无关紧要多少位数)。字母“K”然后是“1”或“2”,然后是“E”,严格来说就是字符串应该如何开始。
  3. 这是我到目前为止所做的:

    var word = "K4E43057";
    if (word.match(/^[A-Za-z]{1,2}[0-9]/g)
        || word.match(/^[Kk]{1}[12]{1}[Ee]{1}[0-9]/g)) {
        alert("It matches.");
    }
    

    它确定字符串确实匹配,即使前缀是K4E,它应该只是K1E或K2E。我对正则表达式还有点新意,所以如果你能帮助我,那就太棒了。

    感谢您的时间!

3 个答案:

答案 0 :(得分:1)

您可以使用[A-Za-z]修饰符而不是i

您还可以将两个正则表达式合并为一个带有或|的子句。

我修改后的正则表达式:

/^([A-Z]{1,2}|K[12]E)\d+$/gi

答案 1 :(得分:0)

(^[A-Z]{2}\d+$)|(^K[1-2]E\d+$)

这应该有用。

答案 2 :(得分:0)

我有一个很好的工具

  

http://regex101.com/r/dC2gM3/2

要匹配任意数量的数字,最后需要*

/^[k][12][e][0-9]*/gi

我不知道,为什么alternation |与{{1}}无法正常使用此工具上的其他回答者所说明的...