我對正則表達式匹配有一個挑戰,對於你們中的一個來說可能太簡單了。我希望你能幫助我解決這個問題。 我需要使用javascript或VB.net一次性測試字符串格式。字母和數字的組合匹配正則表達式
該字符串可能有兩個部分用一個波浪符char〜分開,如str1〜str2或只有一個部分沒有波浪符,如str1或str2。
Str1是一個0到8位數字的序列。當str1長度爲零時,代字符字符也不存在。
Str2的長度爲0到25個字符,其格式必須是字母和數字的組合。請注意,只有字母或數字不好,但兩者的任何組合。當str2長度爲零時,代字符不存在。
由於str1〜str2的組合是一個可選字段,所以str1和str2的長度都爲零,這會導致str1〜str2爲空值。
例如12345678〜ab2345cdef和12345和ab2345的格式都是正確的,但12345678〜abcdefgh和12345678〜70934527654的格式不正確,因爲第二部分不是字母和數字的組合。
我嘗試過解決方案,例如/^([\d]{4,8})(~)([az\d]{0,25})$/.test('12345678~ab2345cdef')儘管我得到正確結果的例子如123456或ab1234,但這並沒有產生正確的結果。
有什麼想法嗎?
預先感謝您
哪個測試字符串沒有產生預期的結果?你遇到了什麼錯誤?查看你的場景,你將需要在同一個(使用|)上結合3個不同的正則表達式來匹配不同的可能性:一個匹配只有str1,另一個匹配str2,第三個匹配str1〜str2 。 – GCSDC
感謝您的回覆。 – Dave123
我確實使用了三個使用|的正則表達式但是當我使用|即使對於無效的字符串,我也總是如此。/^(([0-9A-ZA-Z]){6,40})|((\ d){12})|((([0-9A-ZA-Z]){6,40}) (\ /)((\ d){12}))$ /此問題之前的主要問題是我無法評估字母和數字的組合。 – Dave123