Javascript 更换';和(JS中带有特殊字符的字符)

Javascript 更换';和(JS中带有特殊字符的字符),javascript,regex,jsp,Javascript,Regex,Jsp,我想显示一个字符串,其格式如下: ("Cats"meow's, Jr.) 问题是,我无法找到在JavaScript中的replace()函数中运行此字符串的方法,因为使用(或)或将干扰其中一个特殊字符。该字符串来自JSP变量${displayName}。以下是引发“意外标识符”错误的一些尝试: var displayName = JSON.stringfy("${displayName}"); var displayName = "${displayName}".replace(/"/g, '

我想显示一个字符串,其格式如下:

("Cats"meow's, Jr.)
问题是,我无法找到在JavaScript中的replace()函数中运行此字符串的方法,因为使用(或)或将干扰其中一个特殊字符。该字符串来自JSP变量${displayName}。以下是引发“意外标识符”错误的一些尝试:

var displayName = JSON.stringfy("${displayName}");
var displayName = "${displayName}".replace(/"/g, '"');
var displayName = '${displayName}'.replace(/"/g, '"'); 
var displayName = ${displayName}.replace(/"/g, '"'); 
var displayName = (${displayName}).replace(/"/g, '"');

上面的任何一个都不起作用,请尝试使用字符串,包括(.encodeURI)似乎也不起作用,因为我想要的是HTML转义字符而不是URL。

问题是您试图在JavaScript上下文中访问JSP变量

您可以在隐藏的
div
中打印变量的内容,如下所示:

<div id="displayName" style="display: none"><%= displayName %></div>

并使用它来进行所需的替换。

我最终选择了用JSP替换字符串,因为如果没有更多的工作,用JS包装字符串是行不通的。下面是答案:

<c:out value="${displayName}" escapeXml="true"/>


1)显然,您需要引用它以获得有效的JS语法。2)你需要JS escape来创建一个有效的JS字符串;这就是你失败的地方。我不确定你所指的关于捕获的问题是什么。你的问题与JavaScript无关。你必须在JSP中转义这些字符串,而不是JavaScript。displayName应该是一个包含文本的变量,为什么你要尝试将字符串转换为Variablele name,还是我离这里很远?使用:
displayName=displayName.replace(/[“]/g,”);
Dave,我已经尝试了以上所有方法,加上encodeURI(虽然没有用)。总是会出现上面的错误。@hindsmost在JSP中转义为HTML字符的类和方法是什么?
<c:out value="${displayName}" escapeXml="true"/>