[JS笔记]正则表达式

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

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>

[JS笔记]正则表达式_第1张图片

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

[JS笔记]正则表达式_第2张图片

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

[JS笔记]正则表达式_第3张图片

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

元字符 描述
\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() 返回一个字符串。

你可能感兴趣的:(javascript)