我正在尝试编写正则表达式以检查给定字符串是否包含一组字符,但是,字符串必须包含所有字符,而忽略外观顺序。 例如:
var myString = "howdyhow";
var toMatch = "hyo";
字符串myString包含字符串toMatch的所有字符。 我需要的是类似于正则表达式[hyo]的东西,但是我不需要匹配h OR y OR的出现,而是需要它来匹配h和y和o的出现(忽略字符之间的顺序或'距离')。
答案 0 :(得分:0)
我知道它不是正则表达式,但我会亲自使用Contains
if(value.Contains("h") && value.Contains("y") & value.Contains("o")) {}
答案 1 :(得分:0)
您可以从第二个字符串和调用RegExp.test
方法构建一个前瞻的正则表达式:
var re = new RegExp( toMatch.split('').map(function(item) {
return "(?=.*?" + item + ")"; }).join('') );
//=> re = /(?=.*?h)(?=.*?y)(?=.*?o)/
var matched = re.test(myString);
/(?=.*?h)(?=.*?y)(?=.*?o)/
中的前瞻将确保第二个字符串的所有字符在第一个字符串中匹配,而不管其位置如何。