javascript正则

时间:2023-03-09 15:23:51
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 = /(^((\(0\d{2,3}\))|(0\d{2,3}-)|(0\d{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'),即可完成