JavaScript Remove special characters string not working

纵饮孤独 提交于 2019-11-29 17:21:44

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

some

In a comment I asked you to show us the code where your function removeSplChars was called, and to my surprise you told me that you didn't call it anywhere. Well, that answers the question why nothing has changed. If you don't call the function with the data you want to change, then nothing get changed.

I'm trying to understand what your problem is, because it shouldn't be a problem... Then I looked closer to your code and spotted this:

'<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>'

You should notice that the color coding has made the word search in another color than the rest of the string. This is because you have started the string with a single quote and therefore the string will end at the next single quote.

I notice that you are using JSP, which I'm not familiar with. I looked it up and saw that these tags are parsed by your server before they are sent to the client, and replaced with some text.

Since you have problems with special characters like a single quote, the problem is obvious: The string that your tags output isn't escaped to be a part of a javascript string. I think your only problematic characters of all possible Unicode characters is a double quote (u+0022), single quote (u+0027) and backslash (u+005c), because they must be escaped with a backslash (like \", \' and \\)

Now, how do you do that in JSP? I don't know, but I know that you aren't the first one to have this problem. I quick search gave me this page where they suggest the following:

<spring:message code="${escapedString}" javaScriptEscape="true"/>

Now, as I said, I'm not familiar with JSP, so I am only guessing. Try to replace all your uses of <c:out value="xxx"/> like this:

<c:out value="${WCParam.searchTerm}" />

with this:

<spring:message code="${WCParam.searchTerm}" javaScriptEscape="true"/>

If that doesn't work look at this answer.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!