Javascript正则表达式(Regular Expression)

一段具有特殊格式的字符串,能进行字符串的检索.替换
  1. 声明方式 RegExp

    1. 第一种方式
      var reg = new RegExp('love'); // '[模式修正符]'
      var str = 'i love you';
      var res = res.test(str); // true 返回类型为boolean
      
    2. 第二种方式 : var reg = /12/; (无引号)
  2. 转义字符

var reg = /\w/; //a 单个的字母数字下划线
var reg = /\W/; //'' 单个的非数字字母下划线
var reg = /\d/; //1 单个的数字
var reg = /\D/; //a单个的非数字
var reg = /\s/; //''单个的空白字符
var reg = /\S/; //a 单个的非空白字符
var reg = /\t/; //null 单个的水平制表符
var reg = /\w\d/; // c1
var reg = /\S\d/; // c1
  1. 元字符
var reg = /./; //除了换行符之外的任意单个字符 a
var reg = /\w*/; //匹配任意次数 abcd123iloveyou123
var reg = /\d+/;//匹配至少一次 123123
var reg = /\d+?/;//禁止贪婪 123
var reg = /\d{5}/; //匹配正好五次 12312
var reg = /\d{4,9}/; // 匹配4-9次 123123
var reg = /[abcdefg]/;
var reg = /[a-zA-Z0-9]+?/; // +禁止贪婪 a
var reg = /(\d+)</; // 当前的和小括号里面的 456123< , 456123
var reg = /abc|ddd|eee|23224/; // 1 或abc
var reg = /^\d/; // 精确查找 ^以什么开头 null
var reg = /\w+$/;
var reg = /\S+\d/;
var reg = /\d\S+\w/; // 123123iloveyou123
  1. 模式修正符
var reg = /abc/i; // abc i不区分大小写
var reg = /\d+/g; // 全文查找

var str = 'ABC123123iloveyou123 我爱你456123<>$iabdefghijklmnopq';
var res = reg.exec(str); // 123123,123,456123
  1. 匹配获取内容
var str = '<a href="http://www.12306.cn">铁路12306</a>';
var reg = /"(.+)">(.*)</;
var res = reg.exec(str); // "http://www.12306.cn">铁路12306<","http://www.12306.cn","铁路12306"

常用的正则

  • 用户名的正则表达8-20字母数字下划线
var str = 'iloveyouverymuch';
var reg = /^\w{8,20}$/;
var res = reg.test(str);
  • 邮箱:

var reg = /^\w+@\w+\.(com.cn|cn|com|hk|edu|org)$/;

  • 手机号:

var reg = /^1[3-8]\d{9}$/;
使用正则表达式在限制和检测用户的输入值之后^$是不能省略的