javascript正则

 
<script type="text/javascript">

    //去除两边空格,如果要去除所有空格,使用/s*即可/
    String.prototype.trim = function(){
    	return this.replace(/s*)|(s*$)/g,'');
    }

    //中文2字符长度,英文1字符长度
    String.prototype.len= function(){
    	var len;
    	for(var i = 0 ; i < this.length ;i++){
    		if(this.charCodeAt[i] > 127 || this.charCodeAt[i] == 94){
    			len+=2;
    		}else{
    			len++
    		}
    	}
    	return len;
    }
	window.onload = function(){
		var fm = document.getElementsByTagName('form')[0];
        fm.onsubmit = function(){
			//645298225@qq.com
			var emailReg = /^w+([-+.]w+)*@w+([-+.]w+)*.w+([-+.]w+)*$/;

			//圣兽山
            var nameCN = /^[u4e00-u9fa5]{2,4}$/;
            //13008890154 0775-7966093
            var telReg = /(^(((0d{2,3}))|(0d{2,3}-)|(0d{2,3}))?d{7,8}$)|(^1[3,4,6,7,8,5]d{9}$)/;
            //450821198906061973 
            var idReg = /[0-9]{15}|[0-9]{18}|[0-9]{17}[A-Z]{1}/g;

            //0-9,1-12;
            var monReg = /^(0?[1-9])|(1[0-2])$/;
            //01-09 10-19 20-29 30 31
            var date = /^((0?[1-9])|([1,2][0-9])|30|31)$/;

            //http://www.baidu.com
            var urlReg =/^(https?://)?([w-]+.)+[w-]+(/w+[./?&%=])*$/;

            //0.23;
            var floatReg = /^0.[0-9]{2,}/;

			if(!floatReg.test(fm.reg.value)){
				alert('不合法');
	            return false;
			}
	    }
	}
</script>

要注意的地方有:

1.w之匹配包括下划线的字符,不包括+=-,等字符;

2.使用花括号限制次数是{n,m}而不是{n-m};另外中括号匹配字符[0-9]表示匹配0-9之间的任意一位,如果要多位,加上花括号的匹配次数例如{2,},表示匹配两位以上。如果是[2,4,5]表示匹配2,4,5中的一个;

3.如果需要使用“|”或,请在两边的需要多次运算的正则表达式上加上"()"括号,另外字符串开头要限制字符的,使用“^”号,但是如果在之后使用"?"表示是否匹配,并不冲突;

4.[]每个中括号都代表限制了一个字符的长度匹配;

5.m多行匹配,开启的话,就是多每一行的开始和结束进行匹配,不开启就是对整个字符串的开头和结束惊醒匹配,通过是用于有开头和结束要求的匹配中;

6.g,开启是对整个字符串进行匹配,否则就是匹配到第一个就不在匹配。

7.match返回的是一个null或者数组,如果买没有任何匹配返回一个null,反则返回一个数组,如果开启全局匹配,返回的是一个匹配到的所有字符的数组,不开启则是返回第一个匹配的字符串及其子项组成的数组。

8.$在replace中有特殊含义。通过函数传参并返回字符串,可以拓展匹配的宽度,

9.?=n表示匹配任何其后面紧接n字符串的字符,例如我们要把200000变成200k,正则式/(?=)(0{3})$/,通过.replace(reg,'k'),即可完成

原文地址:https://www.cnblogs.com/bestsamcn/p/5283663.html