JavaScript正则表达式简单讲解

本文深入探讨JavaScript正则表达式的基本概念与创建方式,详细讲解了正则表达式在JavaScript中的应用,包括通过exec(), test(), match(), search(), replace()和split()等方法进行字符串匹配、检索和替换的操作实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript正则表达式

前段时间了解了一下Perl语言,里面特别提到perl语言的一大优势就是强大的正则表达式和模式匹配功能,而JavaScript中的正则语法就是基于Perl的,刚好Perl语言的正则表达式感觉还不太熟练(我的天,细节有点多啊),来学学JavaScript的正则语法补一补吧。

 

什么是正则表达式?

正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式,是用于匹配字符串中字符组合的模式。

 

怎么创建?

  1. 使用字面量

语法为:/pattern/flags

pattern表示正则表达式的模式,flags是一个可选的字符,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。

举例:

var reg = /^[a-z]+$/i;
regExp.test('Asadf'); //true

 

 2.通过RegExp对象创建

语法为:new RegExp(pattern, flags);

注意啦注意啦,这里的pattern是一个字符串儿,如果 pattern 是正则表达式,而不是字符串,则必须省略参数flags。

举例:

      

var reg = new RegExp('abc', 'i'); 通过对象创建

 

 

 

正则表达式中的一些细知识点就不一一讲了。直接来看看JavaScript如何使用正则吧。

  1. RegExp对象提供的exec()方法

语法:RegExpObject.exec( string );

exec()方法用于在目标字符串中搜索匹配,一次仅返回一个匹配结果。

例子:

<html>
<head>
    <title>test</title>
</head>
<body>
    <script type="text/javascript">
        var str = "Javascript is an interesting scripting language";
        var re = new RegExp("script", "g");
        var result = re.exec(str);
        document.write("Test 1 - returned value : " + result);
        re = new RegExp("pushing", "g");
        var result = re.exec(str);
        document.write("<br />Test 2 - returned value : " + result);
        var str2 = 'AbC123abc456';
        var reg = /abc/i; // 定义正则对象
        var a = reg.exec(str2); // 
        document.write("<br />Test 3 - returned value : " + a);
    </script>
</body>
</html>

结果为:

 

2.RegExp对象提供的text()方法

test() 方法用于检测一个字符串是否匹配某个模式,如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。

例子:

<html>
<head>
    <title>test</title>
</head>
<body>
    <script type="text/javascript">
        var str = "1a1b1c";
        var patt = /1./;
        document.write(patt.test(str));
    </script>
</body>
</html>

结果为:

 

3.String对象提供的match()方法

String对象中的match()方法除了可在字符串内检索指定的值外,还可以在目标字符串中根据正则匹配出所有符合要求的内容,匹配成功后将其保存到数组中,匹配失败则返回false。

语法:stringObject.match(searchvalue)

stringObject.match(regexp)

例子:

html>
<head>
    <title>test</title>
</head>
<body>
    <script type="text/javascript">
        var str = "It's is the shorthand of it is";
        var reg1 = /it/gi;
        var a = str.match(reg1); // 匹配结果:(2) ["It", "it"]
        var reg2 = /^it/gi;
        var b = str.match(reg2); // 匹配结果:["It"]
        var reg3 = /s/gi;
        var c = str.match(reg3); // 匹配结果:(4) ["s", "s", "s", "s"]
        var reg4 = /s$/gi;
        var d = str.match(reg4); // 匹配结果:["s"]
        document.write(a + "<br />")
        document.write(b + "<br />")
        document.write(c + "<br />")
        document.write(d)
    </script>
</body>
</html>

结果为:

 

4.String对象提供的search()方法

search()  以正则表达式作为参数;返回第一个与之相配的字符串开始的位置(注意哦,下标从0开始),如果没有则返回-1;

例子:

<html>
<head>
    <title>test</title>
</head>
<body>
    <script type="text/javascript">
        var str = "jfkdasjf";
        var patt = /a/g;
        var res = str.search(patt);
        document.write(res);
    </script>
</body>
</html>

结果为:

 

 

5.String对象提供的replace()方法

replace() 执行检索和替换;第一个参数是一个正则表达式,第二个参数是要替换为的字符串或者闭包;

例子:

<html>
<head>
    <title>test</title>
</head>
<body>
    <script type="text/javascript">
        var str = "jfkdasjf";
        var patt = /a/g;
        var res = str.replace(patt, "&");
        document.write(res);
    </script>
</body>
</html>

结果为:

 

6.String对象提供的split()方法方法

用于根据指定的分隔符将一个字符串分割成字符串数组,其分割后的字符串数组中不包括分隔符。

当分隔符不只一个时,需要定义正则对象才能够完成字符串的分割操作。

例子:

<html>
<head>
    <title>test</title>
</head>
<body>
    <script type="text/javascript">
        var str = 'test@123.com';
        var reg = /[@\.]/;
        var split_res = str.split(reg);
        document.write(split_res);
    </script>
</body>
</html>

结果为:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值