在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:
<input value="Test" type="button" onclick="alert(""OK"");" />
IE提示出错后,再漫不经心地改为:
<input value="Test" type="button" onclick="alert(\"OK\");" />
结果还是出错。
这时,我就想不通了,虽然我知道最直接的解决方法是写成这样:
<input value="" type="button" onclick="alert('OK');" />
但为什么javascript中的转义字符\没有效果了呢?
后来找到一段正常的代码:
<input value="Test" type="button" onclick="alert("OK");" />
这时才理解,原来这时,还是归于HTML的管辖范围,所以转义字符应该使用HTML的,而不是javascript的。两个双引号的做法是 vbScript的,\"这种做法则是javascript的,而HTML的,则是用",此外还可以使用:"、'。
下面列出各种表达方法:
<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转义字符"(& q u o t ;)-OK" type="button" onclick="alert("OK");" /><br />
<input value="HTML转义字符'(& a p o s ;)-IE错误" type="button" onclick="alert('OK');" /><br />
<input value="其它\\-错误" type="button" onclick="alert(\\"OK\\");" /><br />
<input value="其它\& # 3 4 ;-错误" type="button" onclick="alert(\"OK\");" /><br />
</body>
</html>
from: http://blog.sina.com.cn/s/blog_61e6b0770100u3w7.html
相关推荐
4.5 Python核心基础知识之单引号、双引号、三引号与转义字符串.mp4
在VB.net中,转义双引号需要使用两个双引号表示,例如""成员 常量 等效 说明 ---------------------------------------------------------------------------CrLf vbCrLf Chr(13) + Chr(10) 回车/换行组合符。 ...
PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name);最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出。 例如: <?php $name=string; echo 字符串 . '...
在ASP中使用SQL时,需要了解&、双引号、和单引号的使用规则。下面将详细解释它们的意义和使用方法。 1. &连接运算符 &是连接运算符,它可以将两个字符串连接成一个字符串。例如,a="abc" & "def",执行连接运算后...
在ORACLE中,单引号有两个作用: 1:字符串是由单引号引用 2:转义。 单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解 1.从第二个单引号开始被视为转义符,如果第二个单...
在JavaScript中,字符串确实可以用双引号定义,但当字符串内部也需要使用双引号时,就可能出现问题。例如: ```javascript var str = "This is a "string" example."; ``` 上面的例子中,由于字符串内部也使用了双...
单引号和双引号都是用来表示字符串的,但它们有一个重要的区别:单引号需要使用转义符来转义引号内的单引号,而双引号可以自动识别引号内的转义符。例如,如果你想表示字符串"Let's go",使用单引号需要写成`s = '...
如果在单引号字符串中使用变量,它们将被视为普通字符,不会被替换。例如: ``` $name = "John"; echo 'Hello, $name!'; ``` 这段代码会原样输出 "Hello, $name!",因为单引号告诉PHP这是个纯字符串,不包含...
在Linux系统中,无论是命令行操作还是脚本编程,正确地使用单引号(`'`)和双引号(`"`)是非常重要的。这两种引号在处理字符串时有着不同的规则和用途,理解它们之间的差异能够帮助我们更高效、更准确地执行命令或...
首先,我们要解决的问题是“如何防止单引号和双引号在接受页面时被转义”。PHP有一个名为`magic_quotes_gpc`的配置选项,当它开启时,PHP会自动对提交到服务器的数据进行转义,包括单引号、双引号以及反斜杠。如果你...
4. **字符串中的特殊字符**:在双引号中,特殊字符如`\n`(换行)和`\t`(制表符)会被解析为对应的转义字符,而在单引号中则不会。 了解这些差异后,你可以根据实际需求选择合适的引号类型。如果你只需要输出纯...
在JavaScript编程语言中,字符串是数据类型的一种,通常使用单引号 `'` 或双引号 `"` 来定义。在某些场景下,我们可能需要将字符串中的单引号替换为双引号,或者反过来,双引号替换为单引号。这种需求在处理JSON对象...
在这个例子中,我们使用了`onclick`事件,并在双引号前添加了反斜杠转义,同时保留了单引号的原始形式,这样就可以处理含有双引号的参数值。 但是,这种方法仍然有一些限制。例如,如果参数之间有空格,或者参数值...
字符串可以由单引号('')或双引号(" ")包围,但它们之间存在关键性的区别,这些差异主要体现在变量解析、转义序列处理以及多行字符串定义上。 ### 变量解析 **双引号(" ")**: 当使用双引号包围字符串时,PHP会解析...
例如,在HTML属性中使用双引号包围值,在JavaScript字符串中使用单引号或者双引号来标识字符串的开始和结束。如果字符串本身包含了引号,则需要采取一些策略来避免冲突。 在JSP页面中,通常会动态地输出一些HTML和...
在Python中,单引号(')在SQL语句中需要被转义为两个单引号(''),这样数据库会将其识别为字符串的一部分而不是字符串结束的标记。在示例代码中,`result2.replace("'","\\'")`这行代码就是用来做这个转换的。这里...
在JavaScript编程中,字符串的界定通常使用单引号(')或双引号(")来标识。不过,在某些情况下,单引号与双引号可能会造成冲突,尤其是在字符串内需要包含另一种引号时。如果不妥善处理这种冲突,很容易导致JavaScript...
- 如果你使用的是ES6或更高级的JavaScript版本,还可以使用模板字符串(backtick符号 ``),它允许你在字符串中直接插入变量和表达式,并且可以自然地包含单引号和双引号,无需转义: ```javascript var name = '...