JavaScript # 前端 js、html中的单引号、双引号及其转义使用

修改之前的代码:

menu = " <dd><a href='javascript:;'kit-target data-options='{url:'test.aspx',icon:&#xe612;,title:测试页,id:7}'>  <i class='layui-icon'>&#xe612;</i><span> 测试页</span></a></dd>";

修改之后的代码:

menu = "<dd><a href=\"javascript:;\" kit-target data-options=\"{url:'test.aspx',icon:'&#xe616;',title:'测试页',id:'11'}\"><i class=\"layui-icon\">&#xe616;</i><span> 测试页</span></a></dd>";

成功解决。


参考文章:下面列出各种表达方法:

<html>
< body>
< input value="外双引号内双引号-错误" type="button" onclick="alert("OK");" /><br />
< input value="外单引号内单引号-错误" type="button" onclick='alert('OK');' /><br />
< input value="两个双引号-错误" type="button" onclick="alert(""OK"");" /><br />
< input value="两个单引号-错误" type="button" onclick="alert(''OK'');" /><br />
< input value="\+双引号-错误" type="button" onclick="alert(\"OK\");" /><br />
< input value="\+单引号-错误" type="button" onclick="alert(\'OK\');" /><br />
< input value="外双引号内单引号-OK" type="button" onclick="alert('OK');" /><br />
< input value="外单引号内双引号-OK" type="button" onclick='alert("OK");' /><br />
< input value="外部不使用引号-OK" type="button" onclick=alert('OK');alert("OK"); /><br />
< input value="HTML转义字符"(& # 3 4 ;)-OK" type="button" onclick="alert("OK");" /><br />
< input value="HTML转义字符'(& # 3 9 ;)-OK" type="button" onclick="alert('OK');" /><br />
< input value="HTML转义字符"(& # x 2 2 ;)-OK" type="button" onclick="alert('OK');" /><br />
< input value="HTML转义字符'(& # x 2 7 ;)-OK" type="button" onclick="alert('OK');" /><br />
< input value="HTML转义字符&quot;(& q u o t ;)-OK" type="button" onclick="alert(&quot;OK&quot;);" /><br />
< input value="HTML转义字符&apos;(& a p o s ;)-IE错误"type="button" onclick="alert(&apos;OK&apos;);" /><br />

<input value="其它\\-错误" type="button" onclick="alert(\\"OK\\");" /><br />
< input value="其它\& # 3 4 ;-错误" type="button" onclick="alert(\"OK\");" /><br />
< /body>
< /html>

在 (x)HTML 中,一些特殊字符应该进行 HTML 实体转义。

常见的有:&(and)、"(双引号)、'(单引号)、<(小于号)、>(大于号),这些在 (x)HTML 文档内容中应该分别转换成:&amp;&quot;&#39;&lt; 和 &gt;

但是问题就来了,为什么上面单引号的转义和别的特殊字符不同呢?为什么唯独单引号用的是实体编号(&#39;),而其它的用的是实体名称(&apos;)呢?

原因就是 IE 浏览器暂时不支持单引号的实体名称,IE 浏览器暂时只支持单引号的实体编号

这也是 PHP htmlspecialchars 函数把单引号转义成 &#39;,而不是 &apos; 的原因。

这里可以查看 HTML 的所有特殊字符的实体编号和实体名称

 

CharacterEntity NumberEntity NameDescription
"&#34;&quot;quotation mark
'&#39;&apos; (does not work in IE)apostrophe 
&&#38;&amp;ampersand
<&#60;&lt;less-than
>&#62;&gt;greater-than
 
### 回答1: 前端开发单引号双引号使用主要取决于个人喜好,不存在固定的使用规则。一般而言,如果字符串包含单引号,则应该使用双引号;如果字符串包含双引号,则应该使用单引号。另外,也有一些开发者喜欢在所有情况下都使用单引号双引号。 例如: ``` var name = "John Doe"; var message = 'Hello, ' + name + '!'; ``` 或者 ``` var name = 'John Doe'; var message = "Hello, " + name + "!"; ``` 总的来说,前端开发单引号双引号使用与编程风格和个人习惯有关,没有明确的规定。 ### 回答2: 在前端开发单引号双引号都可以用于定义字符串。它们的使用取决于个人习惯和特定的编码规范。 一般来说,我们可以根据以下几个方面来选择使用单引号双引号: 1. 字符串包含单引号双引号:如果字符串本身包含单引号,那么可以使用双引号来定义字符串,反之亦然。这样可以避免出现转义字符,使代码更易读。 2. 与 HTML 属性冲突:在嵌入 JavaScript 代码到 HTML 时,如果字符串本身包含双引号,那么可以使用单引号来定义字符串,这样可以防止与 HTML 属性的双引号冲突。 例如: ```javascript var person1 = 'John'; // 使用单引号来定义字符串 var person2 = "Jane"; // 使用双引号来定义字符串 var message1 = "I'm going to the park."; // 使用双引号来定义包含单引号的字符串 var message2 = 'He said, "Hello!"'; // 使用单引号来定义包含双引号的字符串 var htmlContent = '<p class="intro">This is a paragraph.</p>'; // 使用单引号定义字符串,避免与 HTML 属性的双引号冲突 ``` 总之,单引号双引号前端开发是可以互相替换使用的,具体使用哪种形式取决于个人偏好、特定要求以及与其他部分的兼容性。同一项目最好保持一致性,以提高代码的可读性和维护性。 ### 回答3: 在前端开发单引号双引号都可以用来表示字符串。在日常使用,我们可以根据需要选择使用单引号双引号来包裹字符串。但是在某些情况下,使用单引号双引号可能会有差异。 首先,当我们需要在字符串包含引号时,可以选择使用双引号包裹整个字符串,并在需要引号的地方使用单引号。例如: ```javascript var str = "I'm a front-end developer"; ``` 反之,如果需要在字符串包含单引号,则可以选择使用单引号包裹字符串,并在需要引号的地方使用双引号。 其次,如果我们在HTML使用双引号包裹属性值,那么在属性值需要使用引号的地方可以使用单引号,以避免冲突。例如: ```html <button onclick="alert('Hello, world!')">Click me</button> ``` 另外,某些编码规范或团队风格指南可能对单引号双引号使用有特定的规定。因此,在团队协作,我们应该遵循团队规范来选择使用单引号还是双引号。 总结来说,单引号双引号前端开发可以互换使用,但在一些特定情况下,我们可以根据需要选择使用单引号双引号来包裹字符串。需要注意的是,在特定的场景下,我们应该遵循可能存在的编码规范或团队风格指南来选择使用单引号还是双引号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值