Javascript 不可打印字符的问题
我正在使用条形码扫描仪将二维数据矩阵、UID条形码读取到web应用程序中。UID包含不可打印的ASCII字符RS、GS和EOT。我的问题是浏览器会自动将HTML代码附加到每个ASCII字符的前面,因为没有为RS、GS和EOT定义HTML代码,所以会抛出一个匹配 我正在使用Javascript从扫描的数据中动态构建一个字符串,下面是我得到的一个示例 091[041)062>030RS 如您所见,RS char被赋予一个值(030),该值不作为标准HTML代码存在。另一个问题似乎是,当一个常规字母字符被点击时,浏览器似乎将其视为回车符(CR),因此前面的值会短暂显示,然后消失 我希望能够在浏览器文本框中显示整个字符串。我有一个javascript函数,可以查找这些不可打印的字符,并将它们替换为字母,即RS将被“R”和“S”的串联替换。但我仍然有浏览器发疯的问题,如上所述。任何见解都值得赞赏 更新: 您好,Mathew,很抱歉没有提供更多详细信息。我已使用replace all标志尝试了以下替换功能: 字符串。替换(/(030)|(029)|(004)/g“” 问题是它替换了整个字符串,所以 091[041)062>030RS 变成 /(030)|(029)|(004)/gJavascript 不可打印字符的问题,javascript,html,dom,ascii,Javascript,Html,Dom,Ascii,我正在使用条形码扫描仪将二维数据矩阵、UID条形码读取到web应用程序中。UID包含不可打印的ASCII字符RS、GS和EOT。我的问题是浏览器会自动将HTML代码附加到每个ASCII字符的前面,因为没有为RS、GS和EOT定义HTML代码,所以会抛出一个匹配 我正在使用Javascript从扫描的数据中动态构建一个字符串,下面是我得到的一个示例 091[041)062>030RS 如您所见,RS char被赋予一个值(030),该值不作为标准HTML代码存在。另一个问题似乎是,当一个常规字母字
我不确定是否完全理解您的问题,但为什么不在将字符串写入DOM之前对其运行替换函数呢?如果从不打印不可打印的字符,就不会有任何问题
对最新情况的回应 您可以使用正则表达式将不可打印字符与十六进制值匹配。有关详细信息,请查看。下面是一个快速示例:
uid.replace(/[\x30\x29\x04]/g,"")
(请注意,replace()
函数是在字符串实例上调用的,而不是在string
本身上调用的。)
<>为了使这个更有效,考虑使用一系列不可打印的字符(即<代码> [\x00 -\x1f\x80-\xff] < /代码>).我不确定是否完全理解您的问题,但为什么不在将字符串写入DOM之前对其运行替换函数呢?如果从未打印不可打印的字符,则不会有任何问题
对最新情况的回应 您可以使用正则表达式将不可打印字符与十六进制值匹配。有关详细信息,请查看。下面是一个快速示例:
uid.replace(/[\x30\x29\x04]/g,"")
(请注意,replace()
函数是在字符串实例上调用的,而不是在string
本身上调用的。)
<>为了使这个更有效,考虑使用一系列不可打印的字符(即<代码> [\x00 -\x1f\x80-\xff] < /代码>).您可以将标准
%
格式中的特殊字符编码,例如RS
为%1E
@Loadmaster-这到底是如何工作的?我不太熟悉。您可以将标准%
格式中的特殊字符编码,例如RS
为%1E
@Loadmaster奥克?我不熟悉这个。