[JS笔记]正则表达式

这篇笔记详细介绍了JavaScript中的正则表达式,包括Perl风格的正则、修饰符、模式、方括号和元字符的使用。还讲解了量词的概念,并通过示例展示了如何使用正则表达式检验邮箱格式。最后提到了String对象的相关方法。
摘要由CSDN通过智能技术生成

正则表达式:使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

RegExp 对象:
JS风格------new RegExp("a","i")
Perl风格------/a/i

以下主要介绍Perl风格

正则表达式修饰符(修饰符在全局搜索中不区分大小写)

修饰符描述
i执行对大小写不敏感的匹配。
g执行全局匹配。
m执行多行匹配。

正则表达式模式
方括号用于查找某个范围内的字符:

表达式描述
[abc]查找方括号之间的任何字符。
[0-9]查找任何从 0 至 9 的数字。
(x|y)查找任何以 | 分隔的选项。
//寻找字符c的位置,不区分大小写
<script>
    var str='abCde';
    var re=/c/i;//i即ingore,忽略大小写
    alert(str.search(re));
</script>

在这里插入图片描述

//找到字符串中的数字12、847、33、6
<script>
    var str='12 847gg bh33dsa6';
    var re=/\d+/g;//\d是数字、+指若干个\d,g是全局匹配
    alert(str.match(re));
</script>

在这里插入图片描述

//将所有的a和u变成0
<script>
    var str='abc aaa bfu uuu';
    var re=/a|u/g;//|是或的意思
    alert(str.replace(re,'0'));
</script>

在这里插入图片描述

元字符是拥有特殊含义的字符:

元字符描述
\d查找数字。
\s查找空白字符。
\w查找英文、数字、下划线
\b匹配单词边界。
\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。
\D \W \S分别是\d \w \s的补集
任意字符:[abc]
e.g. o[usb]t-----out ost obt
范围:[a-z][0-9]
e.g. id[0-9]-----id[0] id[1] id[2] id[3]...id[8] id[9]
排除:[^a]
e.g. o[^0-9]t-----oat o?t o+t
组合:[a-z0-9A-Z]

量词:

量词描述
n+匹配任何包含至少一个 n 的字符串。
n*匹配任何包含零个或多个 n 的字符串。
n?匹配任何包含零个或一个 n 的字符串。
{n}正好出现n次
{n,m}最少n次,最多m次
{n,}至少n次,最多不限
//表示固话号码的格式,如010-88821432
var re=(0\d{2,3}-)?[1-9]\d{7}

e.g. 尝试用正则表达式检验邮箱格式是否正确

<script>
    window.onload = function () {
        var oTxt = document.getElementById('txt');
        var oBtn = document.getElementById('btn');
        var re = /^\w+@[a-z0-9]+\.[a-z]+$/;//这里^代表行首,$代表行尾
        oBtn.onclick = function () {
            if (re.test(oTxt.value))
                alert('验证成功');
            else
                alert('验证失败');
        }
    }
</script>

<body>
    <input type="text" name="" id="txt">
    <input type="button" value="check" id="btn">
</body>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
In fact,如果不加上行首^和行尾$,由于test()方法只检查字符串中含有匹配的文本,含有则返回 true,否则返回 false,因此最后一次验证是会成功的。

附录
String 对象方法(与Java类似)

方法描述
charAt()返回在指定位置的字符。
charCodeAt()返回在指定的位置的字符的 Unicode 编码。
concat()连接两个或更多字符串,并返回新的字符串。
fromCharCode()将 Unicode 编码转为字符。
indexOf()返回某个指定的字符串值在字符串中首次出现的位置。
includes()查找字符串中是否包含指定的子字符串。
lastIndexOf()从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。
match()查找找到一个或多个正则表达式的匹配。
repeat()复制字符串指定次数,并将它们连接在一起返回。
replace()在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串。
search()查找与正则表达式相匹配的值。
slice()提取字符串的片断,并在新的字符串中返回被提取的部分。
split()把字符串分割为字符串数组。
startsWith()查看字符串是否以指定的子字符串开头。
substr()从起始索引号提取字符串中指定数目的字符。
substring()提取字符串中两个指定的索引号之间的字符。
toLowerCase()把字符串转换为小写。
toUpperCase()把字符串转换为大写。
trim()去除字符串两边的空白
toLocaleLowerCase()根据本地主机的语言环境把字符串转换为小写。
toLocaleUpperCase()根据本地主机的语言环境把字符串转换为大写。
valueOf()返回某个字符串对象的原始值。
toString()返回一个字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值