在字符串正则表达式中查找模式

时间:2017-08-31 13:30:29

标签: javascript regex

我需要查找以下字符串中是否存在某种模式

I123456-sxzzukerrdco86rg-CMafApp-java

D977058-sxzzukerrdco86rg-CMafApp-java

我需要找到以下

  1. 如果字符串以I977058-
  2. 开头
  3. I也可以是D,如D977058-
  4. 字符串应该在字符串的开头找到,如I977058-sxzzukerrdco86rg-CMafApp-java,它不能在字符串的任何其他部分...
  5. zzzz-sxzzukerrdco86rg-CMafApp-java无效
  6. 11111-sxzzukerrdco86rg-CMafApp-java无效
  7. 我尝试使用以下无效的

    我不知道如何提供以D或I为起点的模式

    var res = str.match(/I-/g);
    

4 个答案:

答案 0 :(得分:0)

并不完全清楚您要匹配的内容,但以下模式将匹配以“D”或“I”开头的任何字符串 - ^字符表示字符串的开头。

var res = str.match(/^[ID]/);

答案 1 :(得分:0)

你可以检查两个字母和想要的数字和短划线。

console.log([
    'I123456-sxzzukerrdco86rg-CMafApp-java',
    'D977058-sxzzukerrdco86rg-CMafApp-java',
    'foo'
].map(/./.test.bind(/^[DI]\d{6}-/)));

答案 2 :(得分:0)

答案 3 :(得分:-1)

尝试类似的东西:

/^[ID]/

'^'表示它是单词的开头。 [ID] =>在{I,D}组中获取一个字符

您可以使用此网站来训练和理解regexpressions:https://regex101.com/