Javascript的replace()函数添加奇怪的字符
Javascript replace() function adding strange characters
考虑以下Javascript:
var previewImg = 'http://example.com/preview_img/hey.jpg';
var fullImg = previewImg.replace('preview','full');
我期望fullImg
的值为:
http://example.com/full_img/hey.jpg
事实上,它是……排序的。运行alert(fullImg);
将显示期望的url字符串。但是当我将变量传递给jQuery Fancybox时,像这样:
jQuery.fancybox.open(fullImg);
向字符串中添加字符,如下所示:
http://example.com/%EF%BF%BCfull_img/hey.jpg
这个%EF%BF%BC
是从哪里来的?这是什么?最重要的是,我怎样才能摆脱它?
其他提示:这是一个Drupal 7站点,运行jQuery 1.5.1。我在网站的其他地方使用相同的Fancybox脚本,没有问题。
%EF%BF%BC
是由三个url编码的字符组成的序列。
显然在字符串中看不到任何意外字符。这是因为字符序列%EF%BF%BC
是不可见的。
它实际上是一个UTF-8字节顺序的标记序列。该序列通常出现在UTF-8编码文本文件的开头。当你从另一个文件复制粘贴时,它们可能会进入你的代码。
摆脱它们的最快方法是找到被复制+粘贴的代码位,删除问题两侧的字符,然后重新键入它们。根据您的编辑器,您可能会发现删除的行为很奇怪,因为它删除了隐藏字符。
一些文本编辑器和ide将有一个显示隐藏字符的选项。如果你的编辑器有这个,它可以帮助你看到神秘字符在哪里,这样你就可以删除它们。
希望对你有帮助。
相关文章:
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 使用Google Maps API向标记添加多个字符
- 如何使用Javascript在给定的句子中找到大写单词并在其前面添加一个字符
- 在输入中添加打断html的字符
- 将组成单词的字符添加到数组的开头
- 在跨度中每3个字符添加一个空格
- 将文本和html unicode字符添加到textarea元素中
- Jquery计算元素中的字符,并为太短的字符添加填充
- 如何使用 JavaScript 将字符添加到字符串的随机空间中
- 使用 javascript/jquery 为字符串中的某些字符添加 span 标记
- 使用 For 循环追加.在追加之前将字符串中的字符添加到元素中
- 将字符添加到值
- 为字符串中的某些字符添加下划线
- 将字符添加到输入中,除非输入值是计算结果
- 通过js将新添加的字符添加到输入中
- 每隔三个数字字符添加一个逗号
- 如何将字符添加到段落's的末尾
- 如何在JavaScript中的表单中每三个字符添加一个空格并具有替换函数
- 为每 5000 个字符添加 24 小时到 getTime()
- 如何在javascript中每三个字符添加一个换行符