学科分类
目录
JavaScript网页编程

量词符

量词符用来设定某个模式出现的次数,通过使用量词符(?、+、*、{ })能够完成某个字符连续出现的匹配。具体如表1所示。

表1 量词符

字符 说明 示例 结果
? 匹配?前面的字符零次或一次 hi?t 可匹配ht和hit
+ 匹配+前面的字符一次或多次 bre+ad 可匹配范围从bread到bre…ad
* 匹配*前面的字符零次或多次 ro*se 可匹配范围从rse到ro…se
{n} 匹配{}前面的字符n次 hit{2}er 只能匹配hitter
{n,} 匹配{}前面的字符最少n次 hit{2,}er 可匹配范围从hitter到hitt…er
{n,m} 匹配{}前面的字符最少n次,最多m次 fe{0,2}l 可匹配fl、fel和feel三种情况

​ 表1中,“…”表示多次。下面为了让读者更好地理解量词符的使用,下面我们以a字符为例进行演示,示例代码如下。

var reg = /^a\*$/;    // *相当于>=0,可以出现0次或很多次

var reg = /^a+$/;    // + 相当于>=1,可以出现1次或很多次

var reg = /^a?$/;    // ? 相当于1||0,可以出现0次或1次

var reg = /^a{3}$/;   // {3}就是重复a字符3次

var reg = /^a{3,}$/;  // {3,}就是重复a字符 大于等于3次

**var reg = /^a{3,16}$/; // {3,16}就是重复a字符 大于等于3次 小于等于16次

上述代码中,是以字符a出现的次数为例使用量词符的,但是在实际开发中,通常使用量词来表示某个模式出现的次数。例如,前面学到的校验用户名的正则表达式:

var reg = /^[a-zA-Z0-9_-]$/;

这个模式只能让用户输入大小写字母、数字、下划线、短横线,因为有边界符“[]”,所以只能多选一。假如允许用户输入6~16位字符,此时就可以通过量词符来使reg模式出现6~16位之间的任何一个都是正确的,这就需要定制一个范围。示例代码如下。

var reg = /^[a-zA-Z0-9_-]{6,16}$/;

从上述代码可知,“[]”部分表示用户名正则模式,“{}”部分设定模式出现的次数。注意{6,16}之间不能有空格。灵活运用限定符,可以使正则表达式更加的清晰易懂。

点击此处
隐藏目录