<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'),即可完成

javascript正则的更多相关文章

  1. JavaScript正则实战

    *:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...

  2. 我也谈javascript正则匹配

    一.javascript 正则全局匹配 g 慎用test()方法 来个例子: var a = /^[a-z]+/gi; a.test('bb123'); //true a.lastIndex ; // ...

  3. JavaScript正则式入门

    正则式 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表通常被用来检索.替换那些符合某个模式(规 ...

  4. JavaScript 正则

    元字符 预定义类 边界 ^在中括号中时,匹配非hello的 str = 'hello world' str.match(/[^hello]/g) //[" ", "w&q ...

  5. JavaScript正则中\1\2的作用

    一.示例 1. 验证6个相同的数字 var reg = new RegExp(/^(\d)\1{5}/g); var a = '333333'; if(reg.test(a)) { alert('ri ...

  6. JavaScript 正则表达收集整理

    JavaScript 正则表达收集整理 //可为空 /^\s*$/ //密码验证,必须且只含有数字和字母,可以拥有英文符号,6-17位 /(?=.{,})(?=.*\d)(?=.*[a-z])[\x2 ...

  7. JavaScript正则常用知识总结

    一.JavaScript正则相关方法 str.match(regexp)与regexp.exec(str)功能类似. str.search(regexp)与regexp.test(str)功能类似. ...

  8. JavaScript 正则的使用方法

    JavaScript正则方法 1.compile 编译一个正则表达式对象 rgExp.compile(pattern, [flags])  pattern字符串表达式 2.exec 在指定字符串中执行 ...

  9. Javascript正则构造函数与正则表达字面量&&常用正则表达式

    本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达 ...

  10. JavaScript正则验证邮箱

    正则表达式/^正则$/.test() <html> <head> <title>JavaScript</title> <meta charset= ...

随机推荐

  1. php插入转义与查找转义

    //转义用于查找 function deepslashes($data) { //判断data表现形式 if(empty($data)) { return $data; } return is_arr ...

  2. JQuery 中的Ajax

    JQuery 对 Ajax 操作进行了封装, 在 jQuery 中最底层的方法时 $.ajax(), 第二层是 load(), $.get() 和 $.post(), 第三层是 $.getScript ...

  3. 如何实现一个通用的IHttpHandler 万能的IHttpHandler HttpWebRequest文件上传

    昨天遇到一个比较奇怪的需求,大致是需要在服务器上部署一个http服务,但是服务的具体功能不知道,以后在客服端实现.这里介绍一下系统背景,有一个系统运(部署在美国)行了很多年了,给系统产生了很多文件,现 ...

  4. 转:测试用书(出处:cnblog--liangshi)

    列表格式为:图书分类.中文书名.英文书名.作者.排名不分先后,用红色标记出我推荐的书籍. 测试入门 软件测试(第2版) Software Testing (2e), Ron Patton 一本测试入门 ...

  5. python 多层装饰器

    25.多层装饰器:      1.原理:执行顺序从上往下,#2和#3组成一个函数假设为nf1,#1和nf1组成一个函数nnf1           f1成为ck_ty_of_us的inner函数即nf ...

  6. Docker容器环境下ASP.NET Core Web API

    Docker容器环境下ASP.NET Core Web API应用程序的调试 本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Dock ...

  7. Swift—析构函数-备

    与构造过程相反,实例最后释放的时候,需要清除一些资源,这个过程就是析构过程.在析构过程中也会调用一种特殊的方法deinit,称为析构函数.析构函数deinit没有返回值,也没有参数,也不需要参数的小括 ...

  8. 将Android 工程从Windows导入到Ubuntu 下java类中的中文在ADT中乱码

    解决方法: 右键工程-->Properties->Resource->Text file encoding->Other 手动输入GBK ->点击OK (Other 中是 ...

  9. PHP 中的超全局变量

    (1)$_GET[].一个包含所有PHP 从客户端浏览器接收的GET变量的数组. (2)$_POST[].一个包含所有PHP 从客户端浏览器接收的POST变量的数组. (3)$_COOKIE[].一个 ...

  10. ALTIUM DESIGNER怎么定义差分对布线

    方法一:第一步是在原理图中声明,这样做的目的是为了让差分对布线器清楚哪两个网络是属于同一组差分对,设计编译器将查找格式为NETNAME_N和NETNAME_P(即以_N和_P为后缀)的两个同名网络.这 ...