防止Javascript转义特殊字符

时间:2016-03-24 19:20:14

标签: javascript hyperlink concatenation href

这听起来像是一个愚蠢的查询。也就是说,我已经到处寻找答案,仍然无法弄明白。

我正在尝试使用JS构建动态链接,但JS一直在逃避" /"

这是我的代码:

var permalink = 'http://yvannasr.com/events';
var slug = 'run-1';
var name = 'run 1';

var link = "<a href=" + "'"+ permalink + "/" + slug +"/" +"'"+">

以下是我为链接变量获得的输出:

<a href=" http:="" yvannasr.com="" events="" run-1="" '="">

这就是我想要的输出:

<a href="http://yvannasr.com/events/run-1/">

有谁能让我知道我做错了什么?

非常感谢, 伊凡

2 个答案:

答案 0 :(得分:0)

你的语法是绝对正确的,但在设置“link”变量时缺少一个结束“(双引号)的小改动。 可能当您将上述“链接”变量呈现为HTML时,您应该得到与输出中提到的类似的结构,因为缺少结束标记。

你应该善于使用以下一行

var link = "<a href=" + "'"+ permalink + "/" + slug +"/" +"'"+">"

答案 1 :(得分:0)

编辑:首先,您将字符串赋值给变量link的语法错误。您无法按照自己的方式添加"字符。如果要添加该字符,则应使用'\"',因为反斜杠会转义双引号,允许将其用作普通字符。

我不知道您的代码如何能够发布您发布的结果。特别是在整个地方都有相同的标志;这对我没用。

当我运行此代码时:

var x = "http://www.google.com"; x;

结果是:

"http://www.google.com"

正斜杠可用于字符串,无需任何转义或解决方法。