快速提示:在JavaScript中测试字符串是否匹配正则表达式
在这个关于JavaScript正则表达式匹配的简短教程中,您将学习如何使用测试()
方法。
字符串是可以包含各种数据的文本片段,例如url、电话号码、姓名、号码等。在许多情况下,您需要检查字符串是否包含一段文本或某些类型的字符。
当您测试字符串是否包含特定的子字符串时,您可能倾向于使用类似于indexOf ()
。但是,对于更灵活的测试和条件,使用正则表达式是更好的选择。
JavaScript regex匹配允许您检查字符串是否包含特定的模式、子字符串或字符类型。正则表达式用于检测可以以不同格式写入的字符串中的信息,例如日期。
根据正则表达式测试字符串
要测试字符串是否与正则表达式匹配,必须首先创建正则表达式实例。然后,您可以使用测试()
方法,以检查字符串是否与正则表达式匹配。
的测试()
方法接受一个参数:要根据模式进行测试的字符串。它返回一个布尔值,指示字符串是否与正则表达式匹配。
例如:
常量模式=/*定期测试。/;常量str='我想用正则表达式测试这个字符串';如果(模式。测试(str)){控制台。日志(“匹配”);}其他的{控制台。日志(“不匹配”);}
在本例中,您将创建模式*定期测试。
。这个模式意味着字符串必须包含单词测试
和常规的
按照这个顺序,并且这些单词可以被零个或多个字符分隔开。
如果测试()
返回true,匹配
已登录到控制台中。否则,不匹配
已登录到控制台中。
自str
包含以下文字测试
和常规的
,测试
之前常规的
在字符串中,它将匹配模式和测试()
将返回true。
你也可以使用正则表达式构造函数来声明模式:
常量模式=新正则表达式(“*定期测试。”);常量str='我想用正则表达式测试这个字符串';如果(模式。测试(str)){控制台。日志(“匹配”);}其他的{控制台。日志(“不匹配”);}
您可以在下面的CodePen演示中进行测试。
看钢笔
根据正则表达式测试字符串由Si必威西盟体育网页登录tePoint (@必威西盟体育网页登录SitePoint)
在CodePen。
常见的例子
本节展示了一些如何使用JavaScript正则表达式匹配来测试常见用例的示例。应该注意的是,这里的正则表达式可能不是每种情况下的完美解决方案。它们每个都用来给出一个简单的例子来说明这个过程是如何工作的。
测试网址
您可以使用正则表达式测试字符串是否为URL。您可以使用下面的CodePen演示进行实验。
看钢笔
测试字符串在JavaScript中是否为URL由Si必威西盟体育网页登录tePoint (@必威西盟体育网页登录SitePoint)
在CodePen。
请注意,上面使用的正则表达式模式期望URL以http://
或https://
。
测试邮件
您可以使用正则表达式测试字符串是否为有效的电子邮件地址。下面的CodePen演示了如何实现。
看钢笔
Test is a String在JS中是一个Email由Si必威西盟体育网页登录tePoint (@必威西盟体育网页登录SitePoint)
在CodePen。
测试日期
可以使用正则表达式测试字符串是否为日期。下面的CodePen演示演示了如何实现它。
看钢笔
测试一个字符串在JavaScript中是否是一个日期由Si必威西盟体育网页登录tePoint (@必威西盟体育网页登录SitePoint)
在CodePen。
请注意,上面使用的正则表达式模式期望日期的格式为“DD-MM-YYYY”或“DD/MM/YYYY”。
JavaScript正则表达式匹配的其他方法
还有其他方法可以测试字符串是否与正则表达式匹配。这篇文章并没有涵盖所有,但这里有一个简短的概述:
- 匹配。此方法可用于字符串。它接受正则表达式作为参数,并检索字符串中与正则表达式匹配的部分(如果有的话)。
- 搜索。此方法可用于字符串。它接受正则表达式作为参数,搜索字符串中是否存在正则表达式模式,如果存在,则检索该模式在字符串中第一次出现的索引。
- 执行。此方法可用于正则表达式。它接受字符串作为参数,在字符串中搜索正则表达式模式,并检索结果(如果有的话)。
结论
正则表达式对于测试字符串是否包含特定模式或子字符串非常有用。使用JavaScript正则表达式匹配,您可以检查字符串是URL、日期、IP地址还是其他类型和格式。
与使用其他方法相比,比如indexOf ()
,测试()
在测试字符串是否与模式匹配时,正则表达式上可用的方法提供了更大的灵活性。
相关阅读: