使用Meteor Match和Regex检查字符串

时间:2015-03-19 09:06:11

标签: regex meteor match

我正在检查特定模式组合的字符串数组。我在使用Meteor的匹配功能和正则表达式文字方面遇到了麻烦。我想检查数组中的第二个字符串是否为url。

addCheck = function(line) {

    var firstString = _.first(line);

    var secondString = _.indexOf(line, 1);

    console.log(secondString);

    var urlRegEx = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-]*)?\??(?:[\-\+=&;%@\.\w]*)#?(?:[\.\!\/\\\w]*))?)/g;


    if ( firstString == "+" && Match.test(secondString, urlRegEx) === true )  {

        console.log( "detected: + | line = " + line )

    } else {
        // do stuff if we don't detect a 
        console.log( "line = " + line );

    }
} 

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

Match.test用于测试变量的结构。例如:“它是一个字符串数组,或包含 createdAt ”字段的对象等。

另一方面,

RegExp.test用于测试给定字符串是否与正则表达式匹配。这看起来像你想要的。

尝试这样的事情:

if ((firstString === '+') && urlRegEx.test(secondString)) {
  ...
}