zoukankan      html  css  js  c++  java
  • 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'),即可完成

  • 相关阅读:
    iOS开发之--隐藏状态栏
    iOS开发之--iPhone X 适配:MJRefresh上拉加载适配
    iOS开发之--为UITextField监听数值变化的三种方法
    ios开发之--为父view上的子view添加阴影
    iOS开发之--在UIWindow上展示/移除一个View
    iOS开发之--Masonry多个平均布局
    CocoaPods更新过程中出现的坑及解决方法
    那些已成定局的人和事
    两个陌生人的对话
    好好写代码吧,没事别瞎B去创业!
  • 原文地址:https://www.cnblogs.com/bestsamcn/p/5283663.html
Copyright © 2011-2022 走看看