【正则表达式】简单入门介绍

认识正则

  • 正则表达式(英语):Regular Expression;
  • 本质:用来记录文本规则的代码;
  • 应用场景:表单验证、高级搜索、生化科学等。

正则构成

  • 由一些普通字符和元字符组成,普通字符就是字母和数字,元字符具有特殊意义的字符,匹配腾讯QQ号:[1-9][0-9]{4,}【五位数字以上,即从10000开始】

正则声明

  • 创建正则表达式的两种方式:
    • 1、通过构造函数定义
      • var 变量名 = newRegExp(/表达式/);
    • 2、通过直接量定义
      • var 变量名 = /表达式/;

认识正则

  • \d:预定义类:表示数字
  • test()方法:
    • 正则对象方法,检测字符串是否符合该规则,返回true,和false,参数(测试字符串)。

字符类 — 预定义类

预定义类正则表达中文解释
.[^\n\r]除了换行和回车之外的任意字符
\d[0-9]数字字符
\D[^0-9]非数字
\s[\t\n\x0B\f\r]空白字符
\S[^ \t\n\x0B\f\r]非空白字符
\w[a-zA-Z0-9]单词字符
\W[^a-zA-Z_0-9]非单词字符

特殊字符

特殊字符正则表达中文解释
\t/\t/制表符
\n/\n/换行符
\r/\r/回车符
\f/\f/换页符
\b/\b/与回退字符
\v/\v/垂直制表符
\0/\0/空字符

字符类 — 简单类

  • []整体对应一个字符,如[abc],里面的内容表示该位置可以是哪些字符,即测试的字符只要包含里面的任意一个就可以。简单类还有一个/abc/:表示至少包含abc,比如abcd

字符类 — 负向类

括号内,前面加个元字符^进行取反,表示匹配不能为括号里面的字符。

console.info(/[abc]/.test('abc'));//true,包含子集的字符串是对的
console.info(/[^abc]/.test('abc'));//false,是子集那么就返回false

注意:这里的^是写在[]里面的,因为在//里面表示正则的开始。

字符类 — 范围类

  • 有时匹配的东西过多,而且类型又不同,全不输入太麻烦,我们可以在中间加一个中划线-表示范围区间。
console.info(/[a-z]/.test('11111'));    //false
console.info(/[A-A]/.test('A1'));       //true

字符类 — 组合类

  • 用中括号匹配不同类型的单个字符。
console.info(/[a-m1-5]/.test('b'));         //true
console.info(/[a-m1-5\n]/.test('2'));       //true

边界

  • ^会匹配行或者字符串的起始位置
  • $会匹配行或字符串的结尾位置
  • ^$一起使用,表示必须这个(精确匹配)

量词

  • *:重复零次或更多(>=0),也可以用{0,}表示
  • +:重复一次或更多次,也可以用{1,}表示
  • ?:重复零次或一次,也可以用{0,1}表示
  • {n}:n次(x=n)
  • {n,}:重复n次或更多(x>=n)
  • {n,m}:重复出现的次数比n多但比m少(n<=x<=m)

案例

  • 1、匹配座机号
    • /(^0\d{2}-8\d{7}$)|(^0\d{3}-3\d{6}$)/
  • 2、匹配中文【2-4位】
    • /^[\u4e00-\u9fa5]{2,4}$/
  • 3、验证QQ号:
    • /^[1-9][1-9{4,}$]/
  • 4、验证手机号
    • /((13[0-9])|(15[^4,\D])|(18[0-9]))\d{8}$/
  • 5、验证邮箱
    • /^[\w\-\.]+\@[\w]+\.[\w]{2,4}$/
  • 6、验证座机号
    • /^0\d{2}-\d{8}$|^0\d{3}-\d{7}$/
  • 7、验证用户名
    • /^[a-zA-Z0-9_-]{3,16}$/
  • 8、验证密码
    • /^[\$a-zA-Z0-9_-]{6,18}$/

匹配密码强度

  • 区分大小写英文字母
    • /^([a-z].*[A-Z])|([A-Z].*[a-z])$/
  • 带有字母和数字
    • /^([a-z].*[0-9])|([A-Z].*[0-9])|[0-9].*[a-zA-Z]$/
  • 字母数字中间加下划线(想要什么中括号中加)
    • /^[A-Za-z0-9]+[_$][A-Za-z0-9]*$/

replace函数

  • replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
    • var str2 = str1.replace(/要替换/ig,”替换成”);
    • i:表示忽略大小写,g表示全局替换。

自定义trim函数【IE6、7、8不支持】

input.onblur = function(){
    var val = this.value;
    if(trim(val) == "") {
        return alert("不能输入为空");
    }
    alert("成功!" + trim(val) + "1");
}
function trim(str) {
    //将字符串的前面和后面的空格去除掉
    return str.replace(/(^\s+)|(\s+$)/g,"");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值