Вместо того, чтобы пытаться использовать переменную непосредственно в регулярном выражении, вот так:
$('body :not(textarea)').replaceText( /\bsplited[q]\b/gi, '<mark>$1</mark>');
Вам нужно создать регулярное выражение из строки, например:
$('body :not(textarea)').replaceText(new RegExp("\\b("+splited[q]+")\\b","gi"),'<mark>$1</mark>');
Есть также несколько других проблем, например, цикл for...in
в массиве, в целом вы хотите, чтобы он выглядел так:
$(document).ready(function ( ) {
if(window.querywords !== undefined){
var qw = window.querywords.replace('%20','+');
qw = qw.replace(' ','+');
var splited = qw.split("+");
for(var q=0; q<splited.length; q++){
$('body :not(textarea)').replaceText(new RegExp("\\b("+splited[q]+")\\b","gi"),'<mark>$1</mark>');
}
}
});
Или, более компактный:
$(function() {
if(window.querywords === undefined) return;
var qw = window.querywords.replace(/%20| /,'+').split("+");
for(var q=0; q<qw.length; q++){
$('body :not(textarea)').replaceText(new RegExp("\\b("+qw[q]+")\\b","gi"),'<mark>$1</mark>');
}
});
Вы можете проверить это здесь .