快速提示:在JavaScript中测试字符串是否匹配正则表达式

    Dianne佩纳
    分享

    在这个关于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 (),测试()在测试字符串是否与模式匹配时,正则表达式上可用的方法提供了更大的灵活性。

    相关阅读:

    Baidu