JavaScript Usuń niedziałający ciąg znaków specjalnych
Próbuję usunąć znaki specjalne, które mogą pojawić się w moich tagach Google Analytics, ponieważ znaki specjalne wydają się powodować błędy skryptu w niektórych wersjach IE. Mam tę funkcję:
function removeSplChars(inStr) {
inStr = inStr.replace(/[^a-zA-Z0-9 ]/g, "");
return inStr;
}
i istnieje kod GA, który obecnie działa:
<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>
Ale kiedy umieszczam tę funkcję w kodzie, nadal widzę znaki specjalne pojawiające się w debuggerze Chrome. Na przykład, gdy wyciągam stronę, na której znajduje się produkt o nazwie „Matt”, pojawia się ona jako strona Matta. Chcę tylko Mattsa. Mamy inne nazwy produktów z ampersandami i innymi znakami specjalnymi, więc chcę tylko zezwolić na A-z i liczby (czapki / bez czapek są OK)
Wszelkie porady zostaną docenione. Przejrzałem następujące posty dotyczące SO, ale jak dotąd nie znalazłem niczego, co pomogłoby mi to zrobić:
Jak postępować ze znakami specjalnymi (® ´ © ¿¡° À) w javascript?
javascript regexp usuwa wszystkie znaki specjalne
Usuń wszystkie znaki specjalne oprócz spacji z ciągu za pomocą JavaScript
Jestem nowy w JSP i JavaScript, więc jestem pewien, że nie umieszczam kodu we właściwym miejscu, a może muszę dodać coś innego na stronie? Próbowałem umieścić funkcję removeSplChars w () lub dodając; i nie ma szczęścia. Niestety, muszę się tego nauczyć w pracy, więc muszę skupić się na wykonywaniu zadań, które otrzymałem, zamiast poświęcać czas na prawdziwe zrozumienie logiki / składni języka.