JavaScript之正则

声明正则

new RegExp()

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

字面量

var reg = /表达式/ ;

test()检测验证内容

//被检测内容必须完整包含abc
var 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 ) ;    //false
console.log( bl1 ) ;    //true 
console.log( bl2 ) ;    //true
console.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值