1.常见正则表达式
数值类:
/^[0-9]*[1-9][0-9]*$/ 正整数
/^\\d+$/ 正整数+0
/^((-\\d+)|(0+))$/ 负整数+0
/^-[0-9]*[1-9][0-9]*$/ 负整数
/^- \\d+$/ 整数
/^\\d+(\\.\\d+) $/ 正浮点数+0
/^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$/ 正浮点数
/^((-\\d+(\\.\\d+) )|(0+(\\.0+) ))$/ 负浮点数+0
/^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/ 负浮点数
/^(- \\d+)(\\.\\d+) $/ 浮点数
字符类(利用正则表达式限制网页表单里的文本框输入内容):
/^(\w|[\u4E00-\u9FA5])*$/ 匹配英文、数字和汉字的混合
/[^\u4E00-\u9FA5]/g 不能匹配中文(可以使用为在文本框中只能输入中文,value.replace(/[^\u4E00-\u9FA5]/g,''),符合条件的替换为“”)
/[^\uFF00-\uFFFF]/g 不能匹配全角字符(value.replace(/[^\uFF00-\uFFFF]/g,'')限制只能输入全角字符)
/[^\d]/g 不能匹配数字(value.replace(/[^\d]/g ,'')限制只能输入数字)
^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$ 匹配ip正则
^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])(\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)){3}$ 匹配ip正则
2.在程序中的使用方法
例如:
var r = /^[0-9]*[1-9][0-9]*$/ //正整数
r.test(str); //str为你要判断的字符 执行返回结果 true 或 false
(test判断字符串str是否匹配表达式,返回一个布尔值)
str.match(r);//str为你要判断的字符 执行返回结果 null 或者不为null
str=str.replace(r,'');//str为要判断的字符 执行结果 符合的 置为“”
js中正则表达式匹配时,如果使用test函数,就必须不带引号,引号用//代替,并且必须是先定义规则变量。所有带引号的都是错误的!!!
如果不适用test,使用match则可以带引号。
检查是否由数字组成: return (str.replace(/\d/g,"").length==0);
检查是否由数字字母和下划线组成 :return (this.replace(/\w/g).length==0);
检查是否为数:
return (s.search(/^[+-]?[0-9.]*$/) >= 0;
返回字节数:
return this.replace(/[^\x00-\xff]/g,"**").length;
检查是否包含汉字:
return (this.length != this.replace(/[^\x00-\xff]/g,"**").length);
只能输入字母和汉字:value.replace(/[\d]/g,'');
只能输入英文字母和数字,不能输入中文:value.replace(/[^\w\.\/]/ig,'');
只能输入数字和英文:
value.replace(/[^\d|chun]/g,'');
<
input
onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">
小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');
只禁止空格输入:value.replace(/\s/g,'');
简单的email检查 :
function TestEmail(mails) {
var strr;
var mail = mails;
var re = /(\w+@\w+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)/i; //mvc view 下@需要转义
re.exec(mail);
if (RegExp.$3 != "" && RegExp.$3 != "." && RegExp.$2 != ".")
strr = RegExp.$1 + RegExp.$2 + RegExp.$3;
else if (RegExp.$2 != "" && RegExp.$2 != ".")
strr = RegExp.$1 + RegExp.$2;
else
strr = RegExp.$1;
return (strr == mail);
}
简单的日期检查,成功返回日期对象:
function TestDate(dt) {
var p;
var re1 = /(\d{4})[年./-](\d{1,2})[月./-](\d{1,2})[日]?$/;
var re2 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{2})[年]?$/;
var re3 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{4})[年]?$/;
if(re1.test(dt)) {
p = re1.exec(dt);
return new Date(p[1],p[2],p[3]);
}
if(re2.test(dt)) {
p = re2.exec(dt);
return new Date(p[3],p[1],p[2]);
}
if(re3.test(dt)) {
p = re3.exec(dt);
return new Date(p[3],p[1],p[2]);
}
return false;
}
检查是否有列表中的字符字符:
function TestList(txt,list){
var re = eval("/["+list+"]/");
return re.test(txt);
}//txt 测试文本,list 列表文本