• :一大波赠书活动正式来袭!满足条件的小伙伴每人赠送一本书,只限前100名!小伙伴们赶紧到碗里来!查看详情

1.10 正则表达式转义字符

一、转义字符简介

对于转义字符的概念,我们在JavaScript入门教程中的“JavaScript特殊数据类型”这一节已经有过详细的介绍。

但是正则表达式本身有它的一套转义字符。正则表达式中的转义字符跟JavaScript中的转义字符是不一样的,仅仅是概念理解一样,大家要区分一下。

我们都知道正则表达式包括2种字符:(1)普通字符;(2)特殊字符。如果我们要匹配正则表达式中的特殊字符,我们就必须在该特殊字符前面加上反斜杠“\”将其进行转义。

例如我们要匹配“go+”这个字符(这里说的是字符),那正则表达式怎么写呢?很多初学者会写成下面这种形式:

 
go+

根据前面学习的“正则表达式限定符”我们知道,上面的正则表达式使用了+限定符,因此字母o必须出现1次或者更多次。所以匹配上面正则表达式的字符串有go、good、god等。但是我们只想匹配“go+”这3个字符!

正常写法如下:

 
go\+

分析:

因为+是正则表达式的特殊符号,因此必须在+前面加上“\”对其进行转义。

例如要匹配字面意义的“\”,就需要使用“\\”表示。

需要转义的字符有:$、(、)、*、+、.、[、]、?、\、/、^、{、}、|。这些字符都不需要记忆,见得多就自然而然记住了。

举例:

 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        var str1="510632";
        var str2="lvyestudy";
        var myregex = new RegExp("\\d{6}");
        if(myregex.test(str1))
        {
            document.write("'510632'是正确的邮政编码"+"<br/>");
        }
        else
        {
            document.write("'510632'不是正确的邮政编码"+"<br/>");
        }
        if(myregex.test(str2))
        {
            document.write("'lvyestudy'是正确的邮政编码");
        }
        else
        {
            document.write("'lvyestudy'不是正确的邮政编码");
        }
    </script>
</head>
<body>
</body>
</html>

在浏览器预览效果如下:

正则表达式转义字符

分析:

 
var myregex = new RegExp("\\d{6}");

对于上面正则表达式的定义,很多初学者会有疑问,为什么是“\\d{6}”而不是“\d{6}”?其实使用new关键字定义正则表达式,RegExp对象是一个字符串,因此这里必须使用JavaScript的转义字符(不同于正则表达式转义字符)。大家仔细琢磨琢磨哈。

 
var myregex = /\d{6}/
:本站所有教程均为原创,大部分已经与人民邮电出版社合作出版,禁止转载和抄袭,否则绿叶学习网和人民邮电出版社必将追究法律责任,附录:互联网著作权保护法。【法律顾问:张俊律师】

如果你想要获取更多学习资料,或者在学习过程中遇到疑问想要得到跟教程一样最优质的解答,请通过以下方式关注我们:

(1)官方微博:

(2)新手Q群:69660533(暗号:lvye)(建议初学前端的加)

(3)官方Q群:457631216(暗号:lvye)(建议有JS基础的加)

(4)绿叶论坛:进入论坛

(5)常见问题:绿叶学习网常见问题解答

回到顶部