I'm trying to remove special characters that could appear within my Google Analytics tags, as the special characters seem to be causing script errors in some versions of IE. I have this function:
function removeSplChars(inStr) {
inStr = inStr.replace(/[^a-zA-Z0-9 ]/g, "");
return inStr;
}
and there is the GA code that currently works:
<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>
But when I place that function within the code, I still see special characters coming up in the Chrome Debugger. For example, when I pull up a page that has a product called "Matt's" it shows up as Matt's. What I want is Matts. We have other product names with ampersands and other special characters, so I just want to allow A-z and numbers (caps/no caps are OK)
Any advice would be appreciated. I have looked at the following posts on SO but so far not found anything that helps me make this work:
How to handle (® ´ © ¿ ¡ ° À ) special characters in javascript?
javascript regexp remove all special characters
Remove all special characters except space from a string using JavaScript
I am new to JSP and JavaScript so I am sure I'm not placing the code in the right place, or maybe I need to add something else on the page? I have tried placing the removeSplChars function within () or adding a ; and no luck. Unfortunately, I have to learn this on the job so I have to focus on completing the tasks I've been given rather than taking the time to truly understand the logic/syntax of the language.