簡體   English   中英

無法使用javascript制作正則表達式

[英]unable to make a regular expression using javascript

我想為我的大學注冊號碼做一個正則表達式。 我成功率75%。 我是新人,我不知道該怎么做。 這就是我在做的事情。

<!DOCTYPE html>
<html> 
<body>

<script>
str = "l1s10bscs"; //successfully tested
                   //but i want to append any 4 digits at the end of l1s10bscs

re = /[a-zA-Z]\d{1}[s|S|f|F]\d{2}[bscs]/g;

result = re.test(str);

document.write(result);

</script>

</body>
</html>

我試過這個,但它不起作用。

re = /[a-zA-Z]\d{1}[s|S|f|F]\d{2}[bscs][0-9]{4}/g;  // this doesn't work 
/[a-z]\d[sf]\d{2}bscs\d{4}/i

根據你的描述,這應該適合。

我改變了以下內容:

  • [bscs]表示“b或s或c或s”(所以“b或s或c”,額外s無意義)。 你只想要文字四字符串“bscs”
  • \\ d {1}與\\ d相同 - 這不是錯誤,但沒有理由明確將角色定義為僅發生一次。
  • 你有一個\\ g標志,但沒有\\ i,所以你將匹配你在一個更大的字符串中多次尋找的字符串,但你的搜索不區分大小寫。
  • [s | S | f | F]表示“s或|或S或| ......”表示“s或S或f ......”,寫成[sSfF]。
  • 由於\\ i習慣於使搜索大小寫不敏感,我將[sSfF]簡化為[sf]

[bscs]不需要放在方括號中:方括號表示bscs 它沒有數字,因為它匹配“l1s10b”,但下一個字符不是數字,所以尋找4位數失敗。 嘗試這個:

re = /[a-zA-Z]\d{1}[s|S|f|F]\d{2}bscs[0-9]{4}/g;

你似乎混淆了[]()

()創建一個組,而[]表示“匹配來自內部的任何字母”。

[s|S|f|F]表示's' OR '|' OR 'S' OR 'f' OR 'F' 's' OR '|' OR 'S' OR 'f' OR 'F' 那應該是(s|S|f|F)[sSfF]

注意:您可以使用i修飾符使其不區分大小寫。

re = /[a-z]\d[sf]\d{2}bscs\d{4}/gi;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM