我需要驗證文本框輸入作爲信用卡號碼。我已經有不同的信用卡正則表達式:我可以「結合」2個正則表達式與邏輯或?
- 簽證:
^4[0-9]{12}(?:[0-9]{3})?$
- 萬事達卡:
^([51|52|53|54|55]{2})([0-9]{14})$
- 美國運通:
^3[47][0-9]{13}$
等等。
問題是,我想驗證使用不同的正則表達式基於不同的用戶。例如:對於用戶1,Visa和Mastercard可用,而對於用戶2,Visa和American Express可用。所以,我想動態生成最終的正則表達式的字符串,上述組合一個或多個正則表達式字符串,如:
user1Regex = Visa regex + "||" + Mastercard regex
user2Regex = Visa regex + "||" + American Express regex
有沒有辦法做到這一點?謝謝,
+1`(:)`與`(作品:??FOO |條)`邏輯或用字符串|多個字符字符 – n611x007 2013-07-03 16:02:10
我測試了這個,'Visaregex`需要切片,否則斜線會被包含在組合中。換句話說,如果`Visaregex ==/ab + c /`和`Mastercardregex ==/de + f /`,那麼`user1Regex`最終會變成`/(\/ab + c \ /)|(\/de + f//),而不是`/(ab + c)|(de + f)/`就像我們想要的那樣。所以我會改變你的答案:`let user1Regex = new RegExp(\`($ {Visaregex.toString()。slice(1,-1)})|($ {Mastercardregex.toString()。slice(1, - 1)})\`);`。 – chharvey 2017-10-14 19:21:12