2017-08-31 54 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/

相關問題