我想创建一个由每个可能的角色组成的字符串,看看是否有任何流行的QR阅读器能够从this QR Barcode读取每个字符。
我的问题是我根本不知道如何将对象创建为一个字节,以便它显示为IEC 8859字符。我尝试过Typed Arrays,但无法打印出每个字符并将其分配给Telerik / Kendo控件
如何使用JS创建一串ISO / IEC 8859-1字符,并将其分配给上面链接的控件?
答案 0 :(得分:2)
我写了这个函数,它接受一个JavaScript编号并确定它是否在ISO / IEC 8859-1代码空间中。使用String.fromCharCode
允许您构建您正在寻找的字符串。
function inIsoIec8859_1(code) {
if (typeof code !== "number" || code % 1 !== 0) {
throw Error("code supplied is not a integer type.")
}
if (code > 255 || code < 32 || (code > 126 && code < 160)) {
return false;
}
return true;
}
var isoLatinCodespace = "";
var code = 0;
for (; code < 255; code += 1) {
if (inIsoIec8859_1(code)) {
var current = String.fromCharCode(code);
isoLatinCodespace = isoLatinCodespace + current;
}
}
http://dojo.telerik.com/IGoT/12
因为你接受了我的原始答案,所以它高于这条线,未经编辑。我发布后意识到一些可能很重要的事情。
如果您打算在循环中获取此值,这将更好地满足您的需求。
var MyApp = {
isoLatinString : (function() {
var isoLatinCodespace = "";
return function () {
if (!isoLatinCodespace) {
function inIsoIec8859_1(code) {
if (typeof code !== "number" || code % 1 !== 0) {
throw Error("code supplied is not a integer type.")
}
if (code > 255 || code < 32 || (code > 126 && code < 160)) {
return false;
}
return true;
}
var code = 0;
for (; code < 255; code += 1) {
if (inIsoIec8859_1(code)) {
var current = String.fromCharCode(code);
isoLatinCodespace = isoLatinCodespace + current;
}
}
}
return isoLatinCodespace;
}
}())
}
然后使用MyApp.isoLatinString()
。这个新代码只生成一次字符串,即使多次调用也是如此。 MyApp可以是您用来包含应用程序的任何对象。