版本号正则表达式

版本号正则表达式 

以数字或者字母开头,且只能包含数字、字母、空格或者(.,_ ,- )特殊字符

var testRule = /^([a-zA-Z0-9]){1}(\w|\.|-|\s*)+$/; 

有个坑:

之前用

var testRule = /^([a-zA-Z0-9]){1}(\w|\.|-|\s*)+$/g; 

这个判定,结果一度发现有问题,甚至怀疑人生,后来发现最后的小写“g”真的是坑死了

举个例子,这是一个测试代码




    
    版本号




分别有两个正则表达式,一个有小g,一个没有

没有g的结果

版本号正则表达式_第1张图片

有g的结果 

版本号正则表达式_第2张图片

可以发现,结果相差很大

原来:

因为/g代表全局匹配,所以判断正则时内部是有一个lastIndex来记录最后匹配的位置.当重复调用的时候,会接着上次的lastIndex继续匹配

 

你可能感兴趣的:(#,JavaScript)