在 javascript 中字符串变量的 “'” 之前添加 ' '
Add ' ' before " ' " of a string variable in javascript
我有一个javascript变量,它保存从其他地方获取的值(假设来自API调用),取字符串在下面给出,
He's the reason for this
我将这个字符串分配给变量名称"sample"。但是当我打印它时,它不起作用,因为字符串有"'"字符。我想在"'"字符之前添加"''"。我尝试使用它,
var sample = (get the string from a api call).replace(/'/g,"''''");
但是它不起作用?
在我的javascript文件中,我使用
window.location.href = "test.php?detail="+sample;
来发送数据。
使用 encodeURIComponent
转义字符串以插入到 URI 中。
在我的测试.php中,我使用
$detail = $_GET["detail"];
和echo $detail;
来打印它。
如果要将其打印到 HTML 中,请使用 htmlspecialchars
以确保其安全。
如果要将其打印到 JavaScript 中,请使用 json_encode
使其安全。
你过度使用转义字符:
var sample = (get the string from a api call).replace(/'/g,"'''");
就足够了,单引号,由双引号分隔,不需要转义,所以只需转义一个反斜杠。
不过,旁注:如果您正在检查的字符串是返回值,则单引号应该不是问题(如果是,则 api 代码将在返回字符串之前中断)。如果你真的真的真的想成为超超级确定并且字符串很长:
var sample = (get the string from a api call).split('''').join('''''');
//or (to avoid confusion with all that escaping
var sample = (get the string from a api call).split("'").join("'''");
对于较长的字符串,拆分速度更快(不是短字符串,因为数组构造函数被称为数组构造函数,创建一个数组对象,循环,...)
大概问题出在(get the string from a api call)
上。如果你有一些像这样的服务器端代码(PHP?):
var sample = <?php echo $mystring ?>.replace(…);
。它产生发送到浏览器的输出,如下所示:
var sample = 'my dad's car'.replace(…);
。那么你的服务器端代码产生了语法无效的JavaScript,无法通过更多的JavaScript修复。相反,您需要在服务器上修复它,例如:
var sample = <?php echo json_encode($mystring); ?>;
但是,如果没有实际的代码详细信息,就不可能进一步帮助您。
- 如何在ASP中为用户控件添加Javascript对象网
- 向Android浏览器添加JavaScript
- 如何在Opencart中动态添加JavaScript
- 如何根据需要优雅地添加javascript/css
- 在Android的Webview中添加Javascript
- Phonegap/Cordova:如何添加Javascript多点触摸事件
- 添加@javascript标记时,Cucumber中的HTTP身份验证失败
- 当我的表单中已经有一个操作时添加JavaScript
- 当我添加JavaScript时,链接按钮停止工作
- Ruby on Rails 4:在 Rails Web 应用程序中添加 Javascript 文件时遇到问题
- 可以'无法正确添加JavaScript值
- 在页面上添加javascript后呈现指令
- 如何在我更改输入时添加javascript操作'的内容
- 在Dotnet Highchart中添加javascript函数
- 如何在R Shiny应用程序中添加JavaScript来更改CSS文件
- 基于使用的ASP MVC EditorFor/Partial模板添加JavaScript引用
- 添加javascript变量以发送数据
- 动态添加javascript事件监听器,做一些无法解释的事情
- 使用wp_enque_script()在Wordpress-functions.php中添加Javascript
- 添加JavaScript onClick以动态生成asp按钮