详解正则表达式的五个主要方法(match、search、test、replace、split)
在上一篇文章中我们详细的介绍了正则表达式以及正则表达式如何使用,查看:(https://www.ciyawang.com/js-65.html)。
接下来我将介绍在实际编程中经常使用正则表达式的五个主要方法。
通过使用这些方法,可以更灵活、更高效地使用正则表达式模式。
如何使用 match 方法执行字符串搜索
在使用正则表达式的情况下,match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
语法
string.match(regexp)
参数值
参数 | 描述 |
---|---|
regexp | 必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。 |
返回值
类型 | 描述 |
---|---|
Array | 存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。 如果没找到匹配结果返回 null 。 |
实例:
const users = 'user, user1, user-2, myuser'; const regexp = new RegExp(/user-\d/); const result = users.match( regexp ); console.log( result[0] );
输出结果:
user-2
对于此例中有一个以各种格式编写的用户名字符串。可以看到在实例中RegExp()用于指定正则表达式模式的使用方法。
通过像“users.match(regexp)”这样的写法,我们正在检测以“user-”开头的数字字符串模式。从执行结果可以看出,只有“user-2”对应这个模式。
如何通过search()方法搜索字符位置
现在让我们看一下“search()”方法!
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
语法
string.search(searchvalue)
参数值
参数 | 描述 |
---|---|
searchvalue | 必须。查找的字符串或者正则表达式。 |
返回值
类型 | 描述 |
---|---|
Number | 与指定查找的字符串或者正则表达式相匹配的 String 对象起始位置。 |
实例:
const str = 'user-12, user-Mike, user-325, user-Jane'; const result = str.search( /user-\d{3}/ ); console.log( result );
输出结果:
20
在此示例中,包含用户名的字符串存储在变量“str”中。作为正则表达式模式,编写“/user-\d{3}/”来检测以 user- 开头的 3 位数字的用户名。
如果在准备好的字符串中写入“search ( /user-\d{3}/ )”,则只能检测到“user-325”。
由于“user-325”存在于字符串开头(0)的第20个字符中,这意味着执行结果将是20。
如何通过test()方法得到true/false
test() 方法用于检测一个字符串是否匹配某个模式.
如果字符串中有匹配的值返回 true ,否则返回 false。
语法
RegExpObject.test(string)
参数
参数 | 描述 |
---|---|
string | 必需。要检测的字符串。 |
实例:
const regexp = new RegExp(/^\d{2}$/); const result1 = regexp.test( 8 ); const result2 = regexp.test( 45 ); const result3 = regexp.test( 768 ); console.log( '8 = ^d{2}$ 为' + result1 ); console.log( '45 = ^d{2}$ 为' + result2 ); console.log( '768 = ^d{2}$ 为' + result3 );
输出结果:
8 = ^d{2}$ 为 false 45 = ^d{2}$ 为 true 768 = ^d{2}$ 为 false
在本例中,我们将1位、2位、3位的数值为对象创建正则表达式模式。正则表达式模式【/^\d{2}$/】中指定只检测两位数的数值。
从执行结果可以看出,只有两位数“45”为真。
所以当我们只想获取真(true)/假(false)并创建条件分支时,test() 方法是一种很有效的方式。
使用正则表达式replace()方法替换字符串
接下来我们继续来看如何使用正则表达式对字符串进行替换和拆分!
使用正则表达式replace()方法替换字符串,replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
语法
stringObject.replace(regexp/substr,replacement)
参数
例如要将电话号码中的所有数字替换为“*”,代码如下:
参数 | 描述 |
---|---|
regexp/substr | 必需。规定子字符串或要替换的模式的 RegExp 对象。 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 |
replacement | 必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
返回值
一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。
例如要将电话号码中的所有数字替换为“*”,代码如下:
const tel_data = "090-1234-5678"; const result = tel_data.replace(/^\d{3}-\d{4}-\d{4}$/, '***-****-****'); console.log(result);
手机号是由 3 位 + 4 位 + 4 位用连字符连接的字符串模式,对吧?
我们使用正则表达式的replace()方法可以很轻松的将其替换为“*”。在日常开发中replace()方法经常被使用,所以请牢记它!
如何使用split()方法拆分字符串
split() 方法用于把一个字符串分割成字符串数组。
语法
string.split(separator,limit)
参数值
参数 | 描述 |
---|---|
separator | 可选。字符串或正则表达式,从该参数指定的地方分割 string Object。 |
limit | 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 |
返回值
类型 | 描述 |
---|---|
Array | 一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 string Object 分割成子串创建的。返回的数组中的字串不包括 separator 自身。 |
实例:
const str = 'user-1,user-2 user-3'; ///使用“,(逗号)”“空白”作为分隔符 const result = str.split(/,|\s/); console.log( result );
输出结果:
["user-1", "user-2", "user-3"]
在实例中目标字符串由“,(逗号)”分隔,例如“user-1,user-2”,或由“空格”分隔,例如“user-2 user-3”。
在这种情况下,使用正则表达式非常简单,使用“/,|\s/”,则将“,(逗号)”“空白”两者作为分隔符使用。
本文来源:词雅网
本文地址:https://www.ciyawang.com/js-69.html
本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。
相关推荐
-
如何去掉字符串首尾字符
在编程中,我们经常需要对字符串进行处理。其中一个常见的操作是去掉字符串的首尾字符。下面我们将介绍几种方法来实现这个操作。方法一:使用substring函数使用substring函数可以轻松地去掉字符串...
-
如何使用截取字符串指定字符的方法
字符串操作是编程中最基础的操作之一。在处理文本数据时,我们通常需要从字符串中提取特定的信息,或者截取一部分字符串进行处理。其中一个常见的需求就是截取字符串指定字符。下面介绍几种方法实现这个需求。方法一...
-
如何使用正则表达式判断是否是数字?
正则表达式是一种强大的文本匹配工具,可以用来判断一个字符串是否符合某种规则。在判断一个字符串是否是数字时,正则表达式也是非常有用的。什么是正则表达式?正则表达式是一种用来描述文本模式的语言,它可以用来...
-
如何使用正则表达式匹配不为空的字符串
正则表达式是一种用于匹配、查找和替换文本的强大工具。使用正则表达式可以轻松地匹配特定模式的文本,例如电子邮件地址、电话号码、日期等等。本篇文章将介绍如何使用正则表达式匹配不为空的字符串。什么是正则表达...
-
如何在字符串中提取数字
字符串是计算机编程中最常用的数据类型之一。在处理文本数据时,我们经常需要从字符串中提取数字。这篇文章将探讨如何使用不同的编程语言从字符串中提取数字。使用正则表达式提取数字正则表达式是一种用来描述字符模...
-
深入理解JavaScript正则表达式中的match方法
在JavaScript中,正则表达式是一种强大的工具,可以用来处理文本、验证表单、过滤数据等等。而正则表达式中的match方法,则是用来从字符串中提取满足某种模式的子字符串。在本文中,我们将深入探讨J...
-
JS正则提取
JS正则表达式是一种强大的工具,可以在字符串中搜索和提取特定的内容。正则表达式由模式和标志组成,可以用于匹配字符串中的特定字符、数字和符号。什么是正则表达式?正则表达式是一种文本模式,用于描述字符串中...
-
详解如何在jQuery选择器中使用正则表达式和属性过滤器
这一次,我们来学习使用正则表达式和属性过滤器来指定 jQuery 选择器的方法!比正则表达式更简单的属性过滤器是什么?让我们从学习属性过滤器开始,它比正则表达式更容易指定选择器!首先,jQuery 选...
-
js正则表达式实例:正则检查数字、字母数字模式
在本章中我们将介绍一些我们目前所学的正则表达式的例子!我们将主要学习数字检查、字母数字检查和电子邮件地址检查。使用正则表达式检查任何数字首先让我们来看看使用正则表达式验证任意“数字模式”的方法吧!试着...
-
详解!什么是正则表达式?正则表达式如何使用?
什么是正则表达式?看看下面的例子:/^0?(13|14|15|17|18|19)[0-9]{9}$/例如一个检查用户是否在 HTML 表单中正确输入手机号的表单,可以使用前面提到的正则表达式用非常简单...