JavaScript 删除特殊字符串不起作用 [英] JavaScript Remove special characters string not working

查看:25
本文介绍了JavaScript 删除特殊字符串不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试删除可能出现在我的 Google Analytics(分析)标签中的特殊字符,因为在某些版本的 IE 中,这些特殊字符似乎会导致脚本错误.我有这个功能:

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;
                }

并且有当前有效的 GA 代码:

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>

但是当我将该函数放入代码中时,我仍然看到 Chrome 调试器中出现了特殊字符.例如,当我打开一个页面,其中包含名为Matt's"的产品时,它显示为 Matt's.我想要的是马茨.我们还有其他带有 & 符号和其他特殊字符的产品名称,所以我只想允许 A-z 和数字(大写/无大写都可以)

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)

任何建议将不胜感激.我已经查看了以下关于 SO 的帖子,但到目前为止还没有找到任何可以帮助我完成这项工作的内容:

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:

如何处理 (® ´ © ¿ ¡ ° À ) 中的特殊字符javascript?
javascript regexp 删除所有特殊字符
从字符串中删除除空格以外的所有特殊字符使用JavaScript

我是 JSP 和 JavaScript 的新手,所以我确定我没有将代码放在正确的位置,或者我可能需要在页面上添加其他内容?我曾尝试将 removeSplChars 函数放在 () 中或添加一个 ;没有运气.不幸的是,我必须在工作中学习这一点,所以我必须专注于完成给我的任务,而不是花时间真正理解语言的逻辑/语法.

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.

推荐答案

问题不是函数本身,而是来自其他地方.证明:http://jsfiddle.net/wDaCw/

The problem is not the function itself, it comes from somewhere else. Proof: http://jsfiddle.net/wDaCw/

这篇关于JavaScript 删除特殊字符串不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆