Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于检查字符串是否有两个指定单词的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 用于检查字符串是否有两个指定单词的正则表达式

Javascript 用于检查字符串是否有两个指定单词的正则表达式,javascript,regex,Javascript,Regex,我想创建一个函数,如果字符串有以下两个词:“team”和“picture”,则返回true 字符串的格式为:“团队\用户\图片”(示例),其中“用户”可以是不同的字符串 我尝试了/team picture/,但这对我的案例不起作用。如何使用正则表达式实现这一点?如果“团队”总是在“图片”之前出现,那么/team.*图片/将起作用 然后,测试regex的函数将是 function hasKeywords(str) { return /team.*picture/.test(str); }

我想创建一个函数,如果字符串有以下两个词:“team”和“picture”,则返回true

字符串的格式为:“团队\用户\图片”(示例),其中“用户”可以是不同的字符串

我尝试了
/team picture/
,但这对我的案例不起作用。如何使用正则表达式实现这一点?

如果“团队”总是在“图片”之前出现,那么
/team.*图片/
将起作用

然后,测试regex的函数将是

function hasKeywords(str) {
    return /team.*picture/.test(str);
}
如果“team”总是在“picture”之前,那么
/team.*picture/
将起作用

然后,测试regex的函数将是

function hasKeywords(str) {
    return /team.*picture/.test(str);
}
如果“team”总是在“picture”之前,那么
/team.*picture/
将起作用

然后,测试regex的函数将是

function hasKeywords(str) {
    return /team.*picture/.test(str);
}
如果“team”总是在“picture”之前,那么
/team.*picture/
将起作用

然后,测试regex的函数将是

function hasKeywords(str) {
    return /team.*picture/.test(str);
}

如果您只想确保这两个单词都在字符串中,那么正则表达式就太过分了。只需像这样使用contains()方法:

function check(str) {
    return str.contains("team") && str.contains("picture");
}

如果您只想确保这两个单词都在字符串中,那么正则表达式就太过分了。只需像这样使用contains()方法:

function check(str) {
    return str.contains("team") && str.contains("picture");
}

如果您只想确保这两个单词都在字符串中,那么正则表达式就太过分了。只需像这样使用contains()方法:

function check(str) {
    return str.contains("team") && str.contains("picture");
}

如果您只想确保这两个单词都在字符串中,那么正则表达式就太过分了。只需像这样使用contains()方法:

function check(str) {
    return str.contains("team") && str.contains("picture");
}

如果要测试的字符串包含两个单词,无论顺序如何:

var s='team_user_picture';
var re=/(团队。*图片)|(图片。*团队)/;

警报(重新测试)如果要测试的字符串中包含两个单词,无论顺序如何:

var s='team_user_picture';
var re=/(团队。*图片)|(图片。*团队)/;

警报(重新测试)如果要测试的字符串中包含两个单词,无论顺序如何:

var s='team_user_picture';
var re=/(团队。*图片)|(图片。*团队)/;

警报(重新测试)如果要测试的字符串中包含两个单词,无论顺序如何:

var s='team_user_picture';
var re=/(团队。*图片)|(图片。*团队)/;

警报(重新测试)这是indexOf的作业。对于此任务,正则表达式效率低下:

function hasWords(string) {
    return ~string.indexOf("picture") &&
           ~string.indexOf("team");
}
更好的功能是:

function contains(str, ar) {
    return ar.every(function(w) {
        return ~str.indexOf(w);
    });
}
现在您可以执行以下操作:

contains("team_user_picture", ["team", "picture"])
这将检查第一个字符串是否包含数组中的所有单词


ES6:

或者:

const contains = (s, a) => a.every(w => s[
    String.prototype.contains ?
    'contains' : 'include'
](w))

这是indexOf的工作。对于此任务,正则表达式效率低下:

function hasWords(string) {
    return ~string.indexOf("picture") &&
           ~string.indexOf("team");
}
更好的功能是:

function contains(str, ar) {
    return ar.every(function(w) {
        return ~str.indexOf(w);
    });
}
现在您可以执行以下操作:

contains("team_user_picture", ["team", "picture"])
这将检查第一个字符串是否包含数组中的所有单词


ES6:

或者:

const contains = (s, a) => a.every(w => s[
    String.prototype.contains ?
    'contains' : 'include'
](w))

这是indexOf的工作。对于此任务,正则表达式效率低下:

function hasWords(string) {
    return ~string.indexOf("picture") &&
           ~string.indexOf("team");
}
更好的功能是:

function contains(str, ar) {
    return ar.every(function(w) {
        return ~str.indexOf(w);
    });
}
现在您可以执行以下操作:

contains("team_user_picture", ["team", "picture"])
这将检查第一个字符串是否包含数组中的所有单词


ES6:

或者:

const contains = (s, a) => a.every(w => s[
    String.prototype.contains ?
    'contains' : 'include'
](w))

这是indexOf的工作。对于此任务,正则表达式效率低下:

function hasWords(string) {
    return ~string.indexOf("picture") &&
           ~string.indexOf("team");
}
更好的功能是:

function contains(str, ar) {
    return ar.every(function(w) {
        return ~str.indexOf(w);
    });
}
现在您可以执行以下操作:

contains("team_user_picture", ["team", "picture"])
这将检查第一个字符串是否包含数组中的所有单词


ES6:

或者:

const contains = (s, a) => a.every(w => s[
    String.prototype.contains ?
    'contains' : 'include'
](w))

我今天犯了同样的错误-String.prototype.contains()是String.prototype.includes()的旧名称。另外请注意,目前它仅与FF和Chrome兼容。是的,但是String.prototype.includes()本身并不是很“旧”。它是ECMAScript 2015标准的一部分,如前所述,该标准并未得到广泛实施。我不知道你为什么认为OP的问题涉及到一个web浏览器环境。我今天犯了同样的错误-String.prototype.contains()是String.prototype.includes()的旧名称。另外请注意,目前它仅与FF和Chrome兼容。是的,但是String.prototype.includes()本身并不是很“旧”。它是ECMAScript 2015标准的一部分,如前所述,该标准并未得到广泛实施。我不知道你为什么认为OP的问题涉及到一个web浏览器环境。我今天犯了同样的错误-String.prototype.contains()是String.prototype.includes()的旧名称。另外请注意,目前它仅与FF和Chrome兼容。是的,但是String.prototype.includes()本身并不是很“旧”。它是ECMAScript 2015标准的一部分,如前所述,该标准并未得到广泛实施。我不知道你为什么认为OP的问题涉及到一个web浏览器环境。我今天犯了同样的错误-String.prototype.contains()是String.prototype.includes()的旧名称。另外请注意,目前它仅与FF和Chrome兼容。是的,但是String.prototype.includes()本身并不是很“旧”。它是ECMAScript 2015标准的一部分,如前所述,该标准并未得到广泛实施。我不知道你为什么认为OP的问题涉及到网络浏览器环境。