有时候人们用奇怪的东西(例如奇怪的Unicode组合)填写表格,以显示特殊字体。
例如:
???
但是,有时客户端不支持这些字符,从而导致显示“?”。
如何使用JavaScript检测失败?这可能吗?
谢谢
答案 0 :(得分:0)
最好的方法是用另一种方法做
您选择网络字体,然后选择允许的范围。 Webfont描述为您提供了允许的字符列表,通常设计人员会进行增强,并且从不删除字形。
您在表单中仅允许使用此类字符。
否则,将取决于Web浏览器。如果同一用户在不同的浏览器中(例如移动设备与计算机),则可能会看到不同的结果。因此,最好的方法(IMHO)是从渲染中完全删除客户端字体,因此您可以使用webfont显式指定字形(以及显示方式)。这与客户端/网络浏览器无关(但在非常老的客户端上)
答案 1 :(得分:-6)
您可以检测到符合问题中给出的用例的非字符。
use utf8;
use Unicode::UCD qw(charinfo);
if (defined charinfo ord '?') {
print 'is a character';
} else {
print 'is a non-character';
}
有关JavaScript UCD库,请参见https://npmjs.com/search?q=ucd。