JavaScript之正则

来源:互联网 发布:java 跨域访问 request 编辑:程序博客网 时间:2024/05/08 23:44

  • 声明正则
    • new RegExp
    • 字面量
    • test检测验证内容
  • 正则内部类
    • 预定义类
      • 除了换行和回车之外的任意字符
      • d 数字字符相当于0-9
      • D非数字字符相当于0-9
      • s 空白字符
      • S非空白字符相当于 tnx0Bfr
      • s 单词字符相当于a-zA-Z_0-9
      • W 非单词字符相当于a-zA-Z_0-9
    • 简单类
    • 负向类
    • 组合类
    • 正则边界
    • 量词
      • 重复0次或多次
      • 重复1次或更多次
      • 重复0次或1次
      • n m 重复次数n x m
      • 或0-9a-z要么数字要么字母
    • 优先级
    • replace 替换
    • 用正则去除首尾空格
  • 正则案例
    • 验证邮箱

声明正则

new RegExp()

var reg = new RegExp(/表达式/) ;

字面量

var reg = /表达式/ ;

test()检测验证内容

//被检测内容必须完整包含abcvar reg = /abc/ ;  var bl = reg.test("ab") ;var bl1 = reg.test("abc") ;var bl2 = reg.test("abcd") ;var bl3 = reg.test("abrc") ;console.log( bl ) ;    //falseconsole.log( bl1 ) ;    //true console.log( bl2 ) ;    //trueconsole.log( bl3 ) ;    //false

正则内部类

预定义类

. 除了换行和回车之外的任意字符

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>regExp</title></head><body><textarea  id="ipt" cols="30" rows="10"></textarea><script>    var ipt = document.getElementById('ipt') ;    ipt.onblur = function(){        //匹配除了回车和换行的任意字符,一定要有一个字符        console.log( /^.+$/.test(this.value) ) ;    } ;</script></body></html>

\d 数字字符(相当于[0-9])

ipt.onblur = function(){    //匹配,以数字开头结尾,并且数字至少有一个    console.log( /^\d+$/.test(this.value) ) ;} ;

\D非数字字符(相当于[^0-9])

\s 空白字符

ipt.onblur = function(){    //匹配,以空白字符开头且以空白字符结尾,空白字符可以重复0次到无限次    //数字必须要有一个    console.log( /^\s{0,}\d{1,}\s{0,}$/.test(this.value) ) ;} ;

\S非空白字符(相当于[^ \t\n\x0B\f\r])

\s 单词字符(相当于[a-zA-Z_0-9])

\W 非单词字符(相当于[^a-zA-Z_0-9])

简单类

//

//包含abc,只能多不能少,abc不能拆开/abc/.test('abcde');

[]

//只要包含abc中任意一个就满足/[abc]/.test('abcde');   //true/[abc]/.test('a');   //true/[abc]/.test('pppabcdd');   //true

负向类

  • ^只有在[]里才表示非,在[]外面表示已某某开头
ipt.onblur = function(){    //匹配,不能以0到9的数字开头或结尾,并且重复1到多次,字符的中间也不能有0到9    console.log( /^[^0-9]{1,}$/.test(this.value) ) ;} ;

组合类

[0-9a-zA-Z]

正则边界

//^:以某某开头  $以某某结尾//必须要以数字开头并且以数字结尾/^[0-9]$/.test('string');

量词

* 重复0次或多次

ipt.onblur = function(){    //匹配,数字重复0次或更多次都正确,不输入也正确    console.log( /[0-9]*/.test(this.value) ) ; } ;

+ 重复1次或更多次

?重复0次或1次

{ n , m } 重复次数n<= x <=m

| 或,(([0-9]+)|([a-z]{+}))要么数字要么字母

优先级

量词 < | < ^$ < ()

replace() 替换

这里写图片描述

用正则去除首尾空格

function trim(str) {    return str.replace(/(^\s+)|(\s+$)/g,"");  // 去掉前面和后面的空格}

正则案例

验证邮箱

//[0-9a-zA-Z_.-]+   至少重复一次0-9a-zA-Z_.-//[@] ///[0-9a-zA-Z_.-]+[@][0-9a-zA-Z]+([.][a-zA-Z]){1,2}/
0 0
原创粉丝点击