JavaScript数组join()导致结果中出现null(%00)字符
JavaScript Array join() cause null (%00) character in result
我正试图通过RequireJs:在js文件请求中放入水印
requirejs.config({
baseUrl: '/app',
urlArgs: [98, 121, 65, 68, 77].map(String.fromCharCode).join('')+'&v=1.0.0'
});
由于某些原因,我不能直接放byADM
,所以我写了上面的代码
我的问题是,在加入字符后,它在url中显示b%00%00y%01%00A%02%00D%03%00M%04%00&v=1.0.0
而不是byADM&v=1.0.0
。看起来像是CCD_ 4转换为CCD_
我该怎么办
字符串库中是否有真正的空字符或其他字符?
Array.prototype.map
向回调传递三个参数:currentValue
、index
、array
。String.fromCharCode
接受任意数量的参数,一次性转换所有参数。从本质上讲,您通过将String.fromCharCode
作为回调直接传递给map
来调用String.fromCharCode(98, 0, [])
。
您需要剔除其他参数:
[98, 121, 65, 68, 77].map((c) => String.fromCharCode(c))
但是,除了对抗这种行为,您还可以使用String.fromCharCode
的能力来接受任意数量的参数来简化代码:
String.fromCharCode.apply(String, [98, 121, 65, 68, 77]) + '&v=1.0.0'
或者,你知道…
String.fromCharCode(98, 121, 65, 68, 77) + '&v=1.0.0'
我不知道为什么,但看起来你需要将String.formCharCode包装成一个额外的匿名函数:
urlArgs: [98, 121, 65, 68, 77].map(
function(c) {
return String.fromCharCode(c);
}
).join('')+'&v=1.0.0'
相关文章:
- 数组在递归方法中设置为null
- 在JavaScript中输出转义字符
- 不同浏览器中的空白字符正则表达式行为
- Regex匹配除“”之外的所有字符;.js”;
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 来自文本输入null的html javascript变量
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 使用RegExp查找url中的字符
- php代码在textbox更改事件上显示null
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 允许在文本框中使用某些字符
- Internet Explorer 9上的Javascript未处理字符NULL(ASCII 0)
- 删除、忽略或阻止IE中字符串中的null字符
- 使用chrome fileSystem编写时,字符串中的Javascript NULL字符
- IE AJAX响应在Null(0x00)字符后修剪所有数据
- JavaScript数组join()导致结果中出现null(%00)字符