[英]Regex to match a digicode (digit, star and sharp)
誰能幫我寫一個正則表達式,用它來驗證javascript中必須符合以下條件的字段(表示數字代碼)?
因此,以下工作:
並且以下無效:
非常感謝!!
^(?:[*#]\d{4,6}|\d{4,6}[*#])$
您可能需要閱讀有關正則表達式的一些基礎知識: 每個程序員絕對應該了解正則表達式 (我自己的博客文章),其中涵蓋了我在這里使用的所有內容。
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));
不知道這是否可以達到最佳效果。 在node.js中測試:
var x = new RegExp(/^[*#]\d{4,6}$|^\d{4,6}[*#]$/);
這應該為您工作;
var expression = /^([*#]?\d{4,6}|\d{4,6}[*#]?)$/;
匹配必須始終至少在*或#上匹配的位置,即不僅是1234
var expression = /^([*#]\d{4,6}|\d{4,6}[*#])$/;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.