我想创建一个包含所有可能字符的字符串,看看是否有任何流行的QR阅读器能够从这个QR条形码中读取每个字符。
我的问题是,我根本不知道如何创建一个对象作为一个字节,使其显示为IEC 8859字符。我尝试了键入数组,但无法实现打印出每个字符并将其分配给Telerik/Kendo控件
我如何使用JS创建ISO/IEC 8859-1字符的字符串,并将其分配给上面链接的控件?
我编写了这个函数,它接受一个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可以是你用来包含应用程序的任何对象。