javascript中的字符转义序列

时间:2013-01-27 10:24:25

标签: javascript escaping

注意到一些字符串(取自m3u播放列表文件中创建的数组)由于格式错误的十六进制字符转义序列而无法正常工作。

var strArray =  [
"#EXTM3U",
"C:\music\X Marks the Pedwalk - Desolation.mp3", //fine
"#EXTINF:287,Xandria - Ginger Sunset Expire", //fine
"C:\music\andria - Ginger Sunset Expire.mp3", //fine
"C:\music\xandria - Ginger Sunset Expire.mp3", // FAILS
"C:\\music\\xandria - Ginger Sunset Expire.mp3" //fine
]

alert (strArray);

我可以用逃脱斜线绕过它。但我的问题是实际导致错误的原因。我认为这可能与\ x有关,但这意味着第一首曲目也会失败。所以我有点困惑。

2 个答案:

答案 0 :(得分:3)

  

我认为它可能与\ x有关,但这意味着第一首曲目也会失败。

不,因为xX不是同一个字符。 :-) \x(小写为xis special in string literals\X(大写为X)不是。

最佳做法是总是转义反斜杠,它们实际上是反斜杠而不是转义序列的开头。否则,你绊倒自己。

答案 1 :(得分:0)

您可以使用功能str_replace替换反斜杠。

<?php

$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// Produce: <body text='black'>

http://php.net/manual/es/function.str-replace.php