JavaScript表单验证正则表达式中星号(*)的作用是什么?
正则表达式星号(*)作用解答
你使用的姓名验证正则代码如下:
var pattern=/^([A-Za-z ]*)$/g;
星号的具体作用
*是正则中的量词限定符,作用是匹配它前方的字符/字符组0次及以上,没有匹配次数上限。- 在这段正则里,
*作用在[A-Za-z ]字符组(该规则匹配大小写英文字母、半角空格)后面,代表允许输入0个或任意多个符合该规则的字符。
去掉星号后无法正常运行的原因
删除*后正则变为/^([A-Za-z ])$/g,此时规则变成只能匹配长度为1的符合规则的内容,比如单个英文字母、单个空格。常规姓名长度基本都大于1,都会被判定为不匹配,验证功能自然就无法正常运行。
这段正则的完整逻辑补充
^匹配字符串的起始位置,$匹配字符串的结束位置,整体要求输入内容从头到尾只能由英文字母和空格组成,同时因为*允许匹配0次,所以也支持空输入的场景,末尾的g是全局匹配标识。
内容的提问来源于stack exchange,提问作者Subhadeep
相关产品推荐
相关产品推荐

