JavaScript——正则表达式

正则表达式基础——1

复习字符串操作
search 查找
显示字符的位置,若不存在该字符,则返回-1
substring 获取子字符串

var str = 'asdfghjk'

    alert(str.substring(2,5));

返回结果为:dfg
也可以取剩余所有字符

charAt 获取某个字符
split 分割字符串,获得数组
字符串的切分

找出字符串中的所有数字

    var str = '12 dwhui d32e -0vfd o0-=c nio034';

    alert(str.match(/\d+/g));

正则表达式基础——2

什么是正则表达式
什么叫“正则”
规则、模式
强大的字符串匹配工具
是一种正常人类很难读懂的文字
RegExp对象
JS风格——new RegExp(“a”、“i”)
perl风格——/a/i

    var re = new RegExp('a');
    var str = 'asdfghj';

    alert(str.search(re));

结果为0,表示a在第0个位置

字符串与正则配合——1

search
字符串搜索
返回出现的位置
忽略大小写:i——ignore
判断浏览器类型

    var re = new RegExp('a','i');或者var re= /a/i
    var str = 'asdfghj';

    alert(str.search(re));

match
获取匹配的项目
量词:+
量词变化:\d、\d\d和\d+
全局匹配:g——global
例子:找到所有数字

var re = /\d;

获取第一个数字

var re = /\d/g;

获取字符串中所有的数字,但一个个分开

    var re = /\d+/g;
    var str = 'aasd s0c sdf22 5467m';

    alert(str.match(re));

获取若干个数字

replace
替换所有匹配
返回替换后的字符串

    var str = 'aasd s0c sdf22 5467m';
    var re = /a/g;

    alert(str.replace(re,'0'));

例子:敏感词过滤

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<script type="text/javascript">
    window.onload = function (){
        var oTxt1 = document.getElementById('txt1');
        var oTxt2 = document.getElementById('txt2');
        var oBtn = document.getElementById('btn1');

        oBtn.onclick = function(){
            var re = /北京|百度|淘宝/g;
            oTxt2.value = oTxt1.value.replace(re,'***');
        }
    }
</script>
</head>
<body>
    <textarea id="txt1" rows="10" cols="40"></textarea><br>
    <input id="btn1" type="button" value="过滤" /><br>
    <textarea id="txt2" rows="10" cols="40"></textarea>
</body>
</html>

字符串——1

任意字符
【abc】
例子:o[usb]t——obt、ost、out

    var str = 'apc xpc ppc bpc spc tpc';
    var re = /[apx]pc/g;

    alert(str.match(re));

结果为apc ppc xpc

范围
【a-z】、【0-9】
例子:id[0-9]——id0、id5
例如找到所有数字:

    var str = '12 dwhui d32e -0vfd o0-=c nio034';

    alert(str.match(/[0-9]+/g));

排除
【^a】
例子:o[^0-9]t——oat、o?t、o t
组合
【a-z 0-9 A-Z】
实例:偷小说
过滤HTML标签
自定义innerText方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<script type="text/javascript">
window.onload = function (){
    var oTxt1 = document.getElementById('txt1');
    var oTxt2 = document.getElementById('txt2');
    var oBtn = document.getElementById('btn1');

    oBtn.onclick = function (){
        var re = /<[^<>]+>/g;
        oTxt2.value = oTxt1.value.replace(re, '');
    }
}
</script>
</head>
<body>
    <textarea id="txt1" rows="10" cols="40"></textarea><br>
    <input id="btn1" type="button" value="转换" /><br>
    <textarea id="txt2" rows="10" cols="40"></textarea>
</body>
</html>

转义字符
.(点)——任意字符
\d、\w、\s
\D、\W、\S

    var re = /\d/;
    var str = 'aasd s0c sdf22 5467m';

    alert(str.search(re));

第一个数字所在的位置
\d 数字 [0-9]
\w 英文、数字、下划线 [0-9 a-z _]
\s 空白字符 空格键 tab键等
\D [^0-9]
\W [^0-9 a-z _]
\S 非空白字符

量词

什么是量词
出现的次数
{n,m},至少出现n次,最多m次
例子:查找QQ号
常用量词
{n,} 至少n次
* 任意次{0,}
? 零次或一次{0,1}
+ 一次或任意次{1,}
{n} 正好n次

常用正则例子

表单校验实例
校验邮箱
行首行尾

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<script type="text/javascript">
    window.onload = function (){
        var oTxt = document.getElementById('txt1');
        var oBtn = document.getElementById('btn1');

        oBtn.onclick = function (){
            var re =/^\w+@[a-z0-9]+\.[a-z]+$/i;

            if (re.test(oTxt.value)) {
                alert('合法邮箱');
            } else {
                alert('写错了');
            }
        }
    }
</script>
</head>
<body>
    <input type="text" id="txt1" />
    <input type="button" value="校验" id="btn1" />
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值