特殊文字が IE の一部のバージョンでスクリプト エラーを引き起こしているように見えるため、Google アナリティクス タグ内に表示される可能性のある特殊文字を削除しようとしています。私はこの機能を持っています:
function removeSplChars(inStr) {
inStr = inStr.replace(/[^a-zA-Z0-9 ]/g, "");
return inStr;
}
現在動作しているGAコードがあります:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '<c:out value="${profileId}"/>']);
<c:choose>
<c:when test="${(lastCmdName eq 'CategoryDisplay') or (lastCmdName eq 'ProductDisplay')}" >
_gaq.push(['_setCustomVar',
2, // This custom var is set to slot #2.
'<c:choose><c:when test="${WCParam.source eq 'search'}">Search</c:when><c:otherwise><c:out value="${topCat}" /></c:otherwise></c:choose>', // The top-level name for your online content categories.
'<c:choose><c:when test="${WCParam.source eq 'search'}">Search <c:out value="${WCParam.searchTerm}" /></c:when><c:otherwise><c:out value="${topCat}" />|<c:out value="${subCatA}" />|<c:out value="${subCatB}" />|<c:out value="${subCatC}" /></c:otherwise></c:choose>', // Records value of breadcrumb name
3 // Sets the scope to page-level.
]);
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
しかし、その関数をコード内に配置すると、Chrome デバッガーに特殊文字が表示されます。たとえば、「Matt's」という商品のページを表示すると、Matt's と表示されます。私が欲しいのはマッツです。アンパサンドやその他の特殊文字を使用した製品名は他にもあるので、A ~ Z と数字を許可したいだけです (大文字の有無は問題ありません)。
アドバイスをいただければ幸いです。SOに関する次の投稿を見てきましたが、これまでのところ、この作業に役立つものは何も見つかりませんでした:
javascriptで(® ´ © ¿ ¡ ° À)特殊文字を処理するには?
javascript regexp remove all special characters
JavaScriptを使用して文字列からスペースを除くすべての特殊文字を削除します
私は JSP と JavaScript を初めて使用するので、コードを適切な場所に配置していないと確信しています。それとも、ページに何か他のものを追加する必要があるのでしょうか? removeSplChars 関数を () 内に配置するか、; を追加しようとしました。そして運がない。残念ながら、私は仕事でこれを学ばなければならないので、時間をかけて言語の論理/構文を真に理解するよりも、与えられたタスクを完了することに集中する必要があります。