如何使用javascript RegExp()查找给定字符串中出现的多个字符串

如何使用javascript RegExp()查找给定字符串中出现的多个字符串,javascript,jquery,regex,Javascript,Jquery,Regex,我想检查给定字符串中多个字符串的可用性(,而不使用循环) 像 我不需要他们的位置 我只需要知道所有搜索字符串都必须在我的字符串中 搜索顺序不会影响结果 是否有任何正则表达式可用于此操作 更新:我缺少什么 在答案中,我发现这一个在上述问题中起作用 if (/^(?=.*\bHow\b)(?=.*\bjavascript\b)(?=.*\bsting\b)(?=.*\bmultiple\b)/.test(subject)) { // Successful match } 但在这种情况下

我想检查给定字符串中多个字符串的可用性(,而不使用循环)

  • 我不需要他们的位置
  • 我只需要知道所有搜索字符串都必须在我的字符串中
  • 搜索顺序不会影响结果
是否有任何正则表达式可用于此操作

更新:我缺少什么

在答案中,我发现这一个在上述问题中起作用

if (/^(?=.*\bHow\b)(?=.*\bjavascript\b)(?=.*\bsting\b)(?=.*\bmultiple\b)/.test(subject)) {
    // Successful match
}
但在这种情况下,它不起作用

这假设字符串不包含换行符。如果是,则需要将所有的
更改为
[\s\s]

我使用了单词边界锚来确保
Howard
resting
不会意外地提供匹配。如果确实要允许,请删除
\b
s

说明:

(?=…)
是一个先行断言:它在字符串中先行检查封闭的正则表达式是否可以在当前位置匹配,而不实际使用字符进行匹配。因此,一系列lookahead的工作方式类似于一系列正则表达式(通过
^
锚定到字符串的开头),它们与逻辑
&
运算符组合在一起

这假设字符串不包含换行符。如果是,则需要将所有的
更改为
[\s\s]

我使用了单词边界锚来确保
Howard
resting
不会意外地提供匹配。如果确实要允许,请删除
\b
s

说明:


(?=…)
是一个先行断言:它在字符串中先行检查封闭的正则表达式是否可以在当前位置匹配,而不实际使用字符进行匹配。因此,一系列lookahead的工作原理类似于一系列正则表达式(通过
^
锚定到字符串的开头),它们与逻辑
&
运算符组合在一起。

简单解决方法,只需使用[\S\S]*而不是。*-nvm。比我快。我建议使用//I开关,使其不区分大小写。my_字符串不包含任何新行和“.”仅包含a-z(小写)、“u”和空格。谢谢你的回答。让我试试。效果很好。非常感谢。@ArjunRaj:
\b
只适用于单词边界,而
3
\u
之间没有单词边界(因为两者都属于字母数字字符类)。通常,您可以使用lookaround断言来解决这个问题,但是JavaScript不支持lookaround。因此,您可能需要以另一种方式解决此问题,例如,首先沿
\uuu
拆分字符串,然后检查拆分的元素。在任何情况下,您都需要更准确地定义您的问题(简化是获得正确但无效答案的可靠方法)。最好就此提出一个新问题。如果是这样,我就换了一个->''.'到空格。。)轻松解决,只需使用[\S\S]*而不是。*-nvm。比我快。我建议使用//I开关,使其不区分大小写。my_字符串不包含任何新行和“.”仅包含a-z(小写)、“u”和空格。谢谢你的回答。让我试试。效果很好。非常感谢。@ArjunRaj:
\b
只适用于单词边界,而
3
\u
之间没有单词边界(因为两者都属于字母数字字符类)。通常,您可以使用lookaround断言来解决这个问题,但是JavaScript不支持lookaround。因此,您可能需要以另一种方式解决此问题,例如,首先沿
\uuu
拆分字符串,然后检查拆分的元素。在任何情况下,您都需要更准确地定义您的问题(简化是获得正确但无效答案的可靠方法)。最好就此提出一个新问题。如果是这样,我就换了一个->''.'到空格。。)
if (/^(?=.*\bHow\b)(?=.*\bjavascript\b)(?=.*\bsting\b)(?=.*\bmultiple\b)/.test(subject)) {
    // Successful match
}
m_str="_3_5_1_13_10_11_";
search_str[0]='3';
search_str[1]='1';
tst=new RegExp("^(?=.*\\b_"+search_str[0]+"_\\b)(?=.*\\b_"+search_str[1]+"_\\b)");
if(tst.test(m_str)) alert('fooooo'); else  alert('wrong');
if (/^(?=.*\bHow\b)(?=.*\bjavascript\b)(?=.*\bsting\b)(?=.*\bmultiple\b)/.test(subject)) {
    // Successful match
}