Я потратил несколько часов на это, и я не могу показаться, что это так.Функциональные возможности регулярных выражений Javascript
В приведенном ниже коде я пытаюсь понять, что и как работают регулярные выражения в url.match
.
Поскольку код ниже, он не работает. Однако, если я удалю (?:&toggle=|&ie=utf-8|&FORM=|&aq=|&x=|&gwp)
, мне кажется, что я хочу получить результат.
Однако Я не хочу удалять это, не понимая, что он делает.
Я нашел довольно полезный ресурс, но уже через несколько часов я все еще не могу точно определить, что эти выражения делают:
Может кто-то сломать это вниз для меня и объяснить, как именно он анализирует строки. Сами выражения и размещение круглых скобок мне не совсем понятны и, откровенно говоря, очень запутанны.
Любая помощь приветствуется.
(function($) {
$(document).ready(function() {
function parse_keywords(url){
var matches = url.match(/.*(?:\?p=|\?q=|&q=|\?s=)([a-zA-Z0-9 +]*)(?:&toggle=|&ie=utf-8|&FORM=|&aq=|&x=|&gwp)/);
return matches ? matches[1].split('+') : [];
}
myRefUrl = "http://www.google.com/url?sa=f&rct=j&url=https://www.mydomain.com/&q=my+keyword+from+google&ei=fUpnUaage8niAKeiICgCA&usg=AFQjCNFAlKg_w5pZzrhwopwgD12c_8z_23Q";
myk1 = (parse_keywords(myRefUrl));
kw="";
for (i=0;i<myk1.length;i++) {
if (i == (myk1.length - 1)) {
kw = kw + myk1[i];
}
else {
kw = kw + myk1[i] + '%20';
}
}
console.log (kw);
if (kw != null && kw != "" && kw != " " && kw != "%20") {
orighref = $('a#applynlink').attr('href');
$('a#applynlink').attr('href', orighref + '&scbi=' + kw);
}
});
})(jQuery);
Отформатируйте свой код и удалите ненужные пустые строки. –
@LeeTaylor На нем. – Russell