javascript - 使用javascript进行多个正则表达式匹配

标签 javascript regex

var wordsString="car/home/pencil,Joe/Hugh/Jack/Chris";
var word='home';
var pattern1=/^/+word;
var pattern2=/,/+word;
var pattern3 =/\//+word;

var matched = wordsString.match(pattern1+ /|/ +pattern2+ /|/ + pattern3 + /g/);

我想使用 pattern1pattern2pattern3 来匹配 wordsString 的结果。

我需要根据pattern1pattern2pattern3进行匹配。但我得到null

问题出在哪里?

最佳答案

您无法连接正则表达式文字。但是,您可以连接字符串并使用它们来构建正则表达式对象:

var wordsString = "car/home/pencil,Joe/Hugh/Jack/Chris",
    word = 'home',
    escapedWord = RegExp.escape(word),
    patterns = ['^' + escapedWord, ',' + escapedWord, '/' + escapedWord],
    regex = new RegExp(patterns.join('|'), 'g'),
    matched = wordsString.match(regex);
如果 word 包含正则表达式中具有特殊含义的字符,则需要

RegExp.escape。它已被提议作为标准,但尚未被接受,因此您必须使用 here 中的代码手动定义它。 .

关于javascript - 使用javascript进行多个正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35612476/

相关文章:

regex - 我需要一个地址匹配算法

regex - 在 r 中的正则表达式中粘贴带引号的变量

javascript - setTimeout 没有按预期工作

javascript - 如何使用 JavaScript/jQuery 更改第二个背景图像 url

javascript - 如何让response.success()等待?

c# - 正则表达式失败

jquery - 带逗号分隔符的数字的正则表达式验证

javascript - 从jQuery中的点击获取数据

javascript - MVC 中全局状态变量存储在哪里以及如何传递它?

java - 如何在字符串中查找子字符串之前和之后