これはhtml5バナー用の単純なコードです。特定の広告配信プラットフォーム用ですが、クロムで実行するとエラーが発生します。javascriptの正規表現機能で構文エラーが発生する
エラーは次のとおりです。 index.html:5 Uncaught SyntaxError: Invalid regular expression: missing /
私は正確に正規表現のこの種のコードを読んで達人ではありませんよ。誰が問題が何であるか把握できますか?
function getParameterByName(name){
name=name.replace(/[\/, "\\[").replace(/[\]/, "\\]");
var regex = new RegExp("[\\?&]" + name + '=([^&#]*)"),results = regex.exec(location.search); return results === null ? "":decodeURIComponent(results[1].replace(/\+/g, " "));
}
var clickTAG = getParameterByName("clickTAG");
私はエラーをスローしないコードの非常によく似た作品が見つかりました:
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" :
decodeURIComponent(results[1].replace(/\+/g, " "));
}
違いは、この行に name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
ある - 何
を働いていない - name = name.replace(/[\/, "\\[").replace(/[\]/, "\\]");
作業します差? []
の意味は何ですか?また、]
を追加するとどうなりますか?
私はあなたの文字列に '' 'と' ''を混ぜたと思います。 –
これは機能していないものを置き換えるものではなく、新しいRegExp()です。文字列はボット ""またはその両方でなければならず、別のものを使うことはできません –
'\'はエスケープ文字です。たとえば、文字列 '"は引用符です:\ "" 'は出力します'ここに引用符があります: '' - '\'はその文字列の一部として扱われるように直後の文字に指示します。最初の例 – Santi