只匹配字符串中的几个单词并返回布尔值

时间:2014-02-17 16:59:58

标签: javascript regex

这是我作为字符串的行:"Fatal error: Uncaught OAuthException: An active access token must be used to ..."

现在我希望javascript匹配此字符串的前几个单词或2-3个单词,如果它在该字符串中找到2-3个单词则返回布尔值true,如果找不到则返回false。知道如何实现这一目标吗?感谢。

3 个答案:

答案 0 :(得分:1)

您可以使用.indexOf函数在字符串中查找这几个单词。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

这是一个例子:

var string1 = "Fatal error: Uncaught OAuthException: An active access token must be used to ...";
var string2 = "Warning: testfile, lorem ipsum";

alert( checkString(string1) );
alert( checkString(string2) );

function checkString(str) {
    if(str.indexOf("Fatal error") == -1)
        return false;
    return true;
}

如果字符串包含“致命错误”(在任何地方,不仅在开头),函数checkString将返回true。您可以通过将其更改为以下内容来更改函数以仅匹配字符串的开头:

function checkString(str) {
    if(str.indexOf("Fatal error") == 0)
        return true;
    return false;
}

答案 1 :(得分:0)

进行任何类型字符串匹配的最简单方法是使用“regular expressions”。这是一种非常常见的迷你语言,已经在许多不同的编程语言,文本编辑器和其他地方实现。

您可以在这里学习正则表达式的基础知识:

您可以在这里学习如何在javascript中使用它:

以下是javascript可能看起来像正则表达式匹配:

var mystring = "Fatal Error: Uncaught Oauth..."
var pattern = /fatal.*error.*uncaught/i; // this is the regular expression
var result = pattern.test(mystring);
alert(result);

这将提醒真实。

答案 2 :(得分:0)

var str = "Fatal error: Uncaught OAuthException: An active access token must be used to";
var res = str.split(" "); 
for (var i = 0; i < res.length; i++) 
{
    //compare using res[i].equals(res[i+1]) method as many strings you need check
}