使用 Meteor Match 和 Regex 检查字符串
Use Meteor Match and Regex to check strings
我正在检查字符串数组中的特定模式组合。我在同时使用 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 );
}
}
如有任何帮助,我们将不胜感激。
Match.test用于测试变量的结构。例如:"it's an array of strings, or an object including the field createdAt",等等
另一方面,RegExp.test 用于测试给定字符串是否与正则表达式匹配。这看起来像你想要的。
试试这样的方法:
if ((firstString === '+') && urlRegEx.test(secondString)) {
...
}
我正在检查字符串数组中的特定模式组合。我在同时使用 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 );
}
}
如有任何帮助,我们将不胜感激。
Match.test用于测试变量的结构。例如:"it's an array of strings, or an object including the field createdAt",等等
另一方面,RegExp.test 用于测试给定字符串是否与正则表达式匹配。这看起来像你想要的。
试试这样的方法:
if ((firstString === '+') && urlRegEx.test(secondString)) {
...
}