量詞符用來設定某個模式出現的次數,通過使用量詞符(?、+、*、)能夠完成某字符連續出現的匹配。具體如表所示。
上表中,“…”表示多次。為了更好地理解量詞符的使用,下面我們以a字符為例進行演示,示例代碼如下。
var reg = /~a*$/; // * 相當于>=0,可以出現1次或很多次
var reg = /^a+$/; //+相當于>=1,可以出現1次或很多次
var reg = /^a?$/; //?相當于1110,可以出現0次或1次
var reg = /<a{3,}$/; //{3} 就是重復a字符3次
var reg = /^a{3,}$/; //{3,}就是重復a字符 大于等于3次
var reg = /^a{3,}$/; //{3,16}就是重復a字符 大于等于3次 小于等于16次
上述代碼中,是以字符a出現的次數為例使用量詞符的,但是在實際開發中,通常使用量詞來表示某個模式出現的次數。例如,前面學到的校驗用戶名的正則表達式如下。
var reg= /^[a-zA-Z0-9 -]s/;
這個模式只能讓用戶輸人大小寫字母、數字、下劃線、短橫線,因為有邊界符“n”,所以只能多選一。假如允許用戶輸入6~16位字符,此時就可以通過量詞符來使reg模式出現6~16位之間的任何一個都是正確的,這就需要定制一個范圍。示例代碼如下。
var reg=/~[a-zA-20-9-]16,16)S/;
從上述代碼可知,“n”部分表示用戶名正則模式,“n”部分設定模式出現的次數。注意(6,16)之間不能有空格。靈活運用限定符,可以使正則表達式更加的清晰易懂。