任何人都可以請幫我寫一個正則表達式,我將用來驗證一個字段(代表一個digicode)在JavaScript中必須符合以下標準嗎?正則表達式來匹配digicode(數字,星星和尖銳)
- 需要具有4至6個號碼(0到9)
- 需要具有1 *(星號)或1#(尖銳)無論是在開始時或結束時
所以以下工作:
- 1234 *
- * 12345
- 56789#
- #456789
而下面不工作:
- 1 * 234
- * 1234 *
- * 1234#
- 1234 *#
- abcde
非常感謝!
任何人都可以請幫我寫一個正則表達式,我將用來驗證一個字段(代表一個digicode)在JavaScript中必須符合以下標準嗎?正則表達式來匹配digicode(數字,星星和尖銳)
所以以下工作:
而下面不工作:
非常感謝!
^(?:[*#]\d{4,6}|\d{4,6}[*#])$
你可能想了解正則表達式的一些基礎知識:我這裏使用What absolutely every Programmer should know about regular expressions(我自己的博客文章)都被覆蓋在那裏。
不知道這是否可以更優化。 測試中的Node.js:
var x = new RegExp(/^[*#]\d{4,6}$|^\d{4,6}[*#]$/);
不符合'56789#'。 –
工作版本:var x = new RegExp(/ ^([*#])(\ d){4,6} $ | ^(\ d){4,6}([*#])$ /); – Zlatko
var s,
rg1=/^[*#]\d{4,6}$/,
rg2=/^\d{4,6}[*#]$/;
s="1234*"; console.info(rg1.test(s)||rg2.test(s));
s="*12345"; console.info(rg1.test(s)||rg2.test(s));
s="56789#"; console.info(rg1.test(s)||rg2.test(s));
s="#456789"; console.info(rg1.test(s)||rg2.test(s));
s="1234"; console.info(rg1.test(s)||rg2.test(s));
s="1*234"; console.info(rg1.test(s)||rg2.test(s));
s="*1234*"; console.info(rg1.test(s)||rg2.test(s));
s="*1234#"; console.info(rg1.test(s)||rg2.test(s));
s="1234*#"; console.info(rg1.test(s)||rg2.test(s));
s="abcde"; console.info(rg1.test(s)||rg2.test(s));
究竟有什麼問題了嗎?獲取輸入字段的值?創建正則表達式?在JavaScript中使用正則表達式?表達式本身非常簡單,並且http://www.regular-expressions.info/是一個很好的開始(也就是JavaScript)。 –
@FelixKling我試圖驗證一個字段(就像它在問題中所說的那樣),即用戶輸入了某些內容,我必須檢查它是否正確。在詢問之前,我在網站上花了一個小時,但找不到任何東西...... – Johann
但總體問題由多個部分組成:(a)開始驗證。 (b)獲取輸入值。 (c)用正則表達式驗證值。你知道些什麼?因爲所有的答案都只是給你正則表達式,你可以在瀏覽http://www.regular-expressions.info/後輕鬆創建正則表達式。 –