如何让键盘上的一个键显示HTML中的另一个字符?

如何让键盘上的一个键显示HTML中的另一个字符?,html,keyboard,space,Html,Keyboard,Space,首先让我说,对于那些不知道的人来说,什么是一半的空间。例如,比较以下两个注释 می‌آیم-مییم 当使用普通空间和半空间时,可以比较می和آیم之间的距离 正如Mihan Nijat在他的回答中提到的,它有一个HTML代码​。通常,当你使用一些键盘,如标准伊朗键盘时,会有一些组合键,如Shift+B 现在我的问题是,我们是否可以在HTML文档中定义半个空格,而不使用上面提到的这些。所以定义一个特定的半空间,长度是我们想要的,比如说1个像素。是否可以要求HTML自动编译带有自定义半空

首先让我说,对于那些不知道的人来说,什么是一半的空间。例如,比较以下两个注释

می‌آیم-مییم

当使用普通空间和半空间时,可以比较می和آیم之间的距离

正如Mihan Nijat在他的回答中提到的,它有一个HTML代码
。通常,当你使用一些键盘,如标准伊朗键盘时,会有一些组合键,如Shift+B


现在我的问题是,我们是否可以在HTML文档中定义半个空格,而不使用上面提到的这些。所以定义一个特定的半空间,长度是我们想要的,比如说1个像素。是否可以要求HTML自动编译带有自定义半空间的字符?

零宽度空间

零宽度空格在两个字符之间创建空格,但实际上不是与默认空格相同宽度的空格。这对于阿拉伯语和波斯语脚本非常方便

通常缩写为ZWSP此字符用于不可见 分词和换行控制;它没有宽度,但是它的 两个字符之间的存在不会阻止字母的增加 对齐中的间距

HTML实体(十进制):
和#8203

完整的细节是可用的

如果您想按一个键并为您创建零宽度空间,那么使用JavaScript和逻辑。示例:如果按下A,则执行[此操作]。使用逻辑中的键码

您需要使用事件添加侦听器进行如下操作

function(e) {
    if (e.keyCode == 13) {
      .... code here
    }
}
在上述示例中,
13
整数代表
enter
键。

如果您没有更改网站的权限,只想键入
textarea
input
并允许使用HTML。然后使用
代码,它将为您工作

更新: 我只是查看了一下网站,用
ctrl+b
添加零宽度空间并没有为我添加任何加粗的内容。我复制了你发布的文本并粘贴到word程序中。并替换了所有的♥ 使用空格,然后复制文本并使用word-icon中的
过去粘贴到论坛上

请参见此测试图片:


零宽度空间

零宽度空格在两个字符之间创建空格,但实际上不是与默认空格相同宽度的空格。这对于阿拉伯语和波斯语脚本非常方便

通常缩写为ZWSP此字符用于不可见 分词和换行控制;它没有宽度,但是它的 两个字符之间的存在不会阻止字母的增加 对齐中的间距

HTML实体(十进制):
和#8203

完整的细节是可用的

如果您想按一个键并为您创建零宽度空间,那么使用JavaScript和逻辑。示例:如果按下A,则执行[此操作]。使用逻辑中的键码

您需要使用事件添加侦听器进行如下操作

function(e) {
    if (e.keyCode == 13) {
      .... code here
    }
}
在上述示例中,
13
整数代表
enter
键。

如果您没有更改网站的权限,只想键入
textarea
input
并允许使用HTML。然后使用
代码,它将为您工作

更新: 我只是查看了一下网站,用
ctrl+b
添加零宽度空间并没有为我添加任何加粗的内容。我复制了你发布的文本并粘贴到word程序中。并替换了所有的♥ 使用空格,然后复制文本并使用word-icon中的
过去粘贴到论坛上

请参见此测试图片:


从键盘获取输入时,用其他东西替换它。 请参阅:

在小提琴中,只需使用所需的任意UTF间距选项替换
\x20

function transformTypedChar(charStr) {
  return charStr == "a" ? "\x20" : charStr;
}
代码:

函数transformTypedChar(charStr){
return charStr==“a”?“\x20”:charStr;
}
函数getInputSelection(el){
var start=0,
结束=0,
标准化值、范围、,
textInputRange,len,endRange;
if(el.selectionStart的类型=“number”&&type el.selectionEnd==“number”){
开始=el.selectionStart;
结束=el.selectionEnd;
}否则{
range=document.selection.createRange();
if(range&&range.parentElement()==el){
len=el.value.length;
normalizedValue=el.value.replace(/\r\n/g,“\n”);
//创建仅存在于输入中的工作TextRange
textInputRange=el.createTextRange();
textInputRange.moveToBookmark(range.getBookmark());
//检查选择的开始和结束是否在最末端
//由于moveStart/moveEnd不返回我们想要的内容,所以
//在这些情况下
endRange=el.createTextRange();
endRange.collapse(假);
if(textInputRange.compareEndPoints(“StartToEnd”,endRange)>-1){
开始=结束=长;
}否则{
start=-textInputRange.moveStart(“字符”、-len);
start+=normalizedValue.slice(0,start).split(“\n”).length-1;
if(textInputRange.compareEndPoints(“EndToEnd”,endRange)>-1){
结束=len;
}否则{
end=-textInputRange.moveEnd(“字符”,-len);
end+=normalizedValue.slice(0,end).split(“\n”).length-1;
}
}
}
}
返回{
开始:开始,
完:完
};
}
函数偏移OrangeCharacterMove(el,偏移){
返回偏移量-(el.value.slice(0,偏移量).split(“\r\n”).length-1);
}
功能设置输入选择(el、STARTOFSET、endOffset){
el.focus();
if(el.selectionStart的类型=“number”&&type el.selectionEnd==“number”){
el.selectionStart=开始设置;
el.selectionEnd=内偏移;
}否则{
var range=el.createTextRange();
瓦尔斯塔特查尔酒店