2017-08-31 53 views
1

我需要找到如果一些模式在以下字符串查找字符串的正则表达式内侧的图案

I123456-sxzzukerrdco86rg-CMafApp-java

或者D977058-sxzzukerrdco86rg-CMafApp-java

我需要找到以下

  1. 如果字符串存在从I977058-
  2. I可以是一个LSO DD977058-
  3. 该字符串应该像I977058-sxzzukerrdco86rg-CMafApp-java的字符串的开始被发现,它不能在绳子的其他部分...
  4. zzzz-sxzzukerrdco86rg-CMafApp-java无效
  5. 11111-sxzzukerrdco86rg-CMafApp-java不有效

我尝试与不工作的下面

我不知道如何提供这也采取d模式或我的出发点

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

什么是你的情况下预期的输出? –

+0

@WiktorStribiżew - 有效或无效 –

+0

像'/^[ID] \ d {6} -sxzzukerrdco86rg-CMafApp-java $ /。test(s)'? –

回答

1

你可以核对这两个字母和希望数字和破折号。

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

+0

但I或D之后的数字可以更改7位数字,可以是任何数字... –

1

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

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

尝试类似的东西:

/^[ID]/ 

的 '^' 告诉它是单词的开头。 [ID] =>获得A组字符{I,d}

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

相关问题