Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将拉丁字母动态替换为西里尔字母,因为它们是';在JavaScript中重新键入_Javascript - Fatal编程技术网

将拉丁字母动态替换为西里尔字母,因为它们是';在JavaScript中重新键入

将拉丁字母动态替换为西里尔字母,因为它们是';在JavaScript中重新键入,javascript,Javascript,我正试图建立这个程序,需要输入部分类似于谷歌翻译的。也就是说,拉丁字母在键入时被动态替换为西里尔字母(例如,当字母B被键入时,字母Б被打印在输入框中,等等) 我尝试通过onkeyup事件将拉丁字母与西里尔字母联系起来,但有些字母如Sh(Ⅲ)或Ya(Я)与键组合相关联,我找不到解决方法。我会包括我已经尝试过的代码示例,但我遇到的问题更多的是与计划相关的问题,而不是与实现相关的问题。如果我能得到帮助,找出如何解决和构建这个问题,那就太好了 TIA我很无聊,所以我编写了一个示例(概念验证) 我一直在确

我正试图建立这个程序,需要输入部分类似于谷歌翻译的。也就是说,拉丁字母在键入时被动态替换为西里尔字母(例如,当字母B被键入时,字母Б被打印在输入框中,等等)

我尝试通过onkeyup事件将拉丁字母与西里尔字母联系起来,但有些字母如Sh(Ⅲ)或Ya(Я)与键组合相关联,我找不到解决方法。我会包括我已经尝试过的代码示例,但我遇到的问题更多的是与计划相关的问题,而不是与实现相关的问题。如果我能得到帮助,找出如何解决和构建这个问题,那就太好了


TIA

我很无聊,所以我编写了一个示例(概念验证)
我一直在确定正常文本是什么,转换文本是什么,这就是允许多个键组合的原因(查看整个字符串,而不仅仅是每个键输入)

var\u change={sh:'lol',ab:'cd',a:'z',sh:'lol',ab:'cd',a:'z'}//首先是最大的字符串
var_default={lol:'sh',cd:'ab',z:'a',lol:'sh',cd:'ab',z:'a'}//首先是最大的字符串
//您可以使用任意多的翻译填充这些对象
//如果先是一个较小的字符串,“ab”将在变为“cd”之前变为“zb”
//确保每个翻译文本都不同于任何原始文本
var _text=document.getElementById('text'))
让defaultText=(text)=>text.split(“”).map(l=>_default[l]| | l).join(“”)
让changeText=(text)=>{
Object.keys(_change).forEach(toSplit=>text=text.split(toSplit).join(_change[toSplit]))
返回文本
}
设置间隔(()=>{
让text=\u text.value
_text.value=changeText(defaultText(text))
},300)

我只有3个(技术上为6个)示例……”sh'到lol',a'到z',ab'到cd'


从技术上讲,6因为我也有“SH”到“LOL”等等,我很无聊,所以我编了一个例子(概念证明)
我一直在确定正常文本是什么,转换文本是什么,这就是允许多个键组合的原因(查看整个字符串,而不仅仅是每个键输入)

var\u change={sh:'lol',ab:'cd',a:'z',sh:'lol',ab:'cd',a:'z'}//首先是最大的字符串
var_default={lol:'sh',cd:'ab',z:'a',lol:'sh',cd:'ab',z:'a'}//首先是最大的字符串
//您可以使用任意多的翻译填充这些对象
//如果先是一个较小的字符串,“ab”将在变为“cd”之前变为“zb”
//确保每个翻译文本都不同于任何原始文本
var _text=document.getElementById('text'))
让defaultText=(text)=>text.split(“”).map(l=>_default[l]| | l).join(“”)
让changeText=(text)=>{
Object.keys(_change).forEach(toSplit=>text=text.split(toSplit).join(_change[toSplit]))
返回文本
}
设置间隔(()=>{
让text=\u text.value
_text.value=changeText(defaultText(text))
},300)

我只有3个(技术上为6个)示例……”sh'到lol',a'到z',ab'到cd'

技术上说是6,因为我还有“SH”到“LOL”等等{ ‘b’:‘Б’、/…等 } 函数onPressHandler(e){ 常量值=e.target.value //或者,您可以一次处理每个按下的键 常量长度=value.length 让输出=“” for(设i=0;i
常量映射={
‘b’:‘Б’、/…等
}
函数onPressHandler(e){
常量值=e.target.value
//或者,您可以一次处理每个按下的键
常量长度=value.length
让输出=“”
for(设i=0;i
而不是看着按下的键。。查看输入中的所有文本,并替换为
split
logic或
regex
。。如果你不给我举个例子,我就不能再告诉你了@爆炸队正是我的目标哈哈,我不认为我能解释得很好我举了个例子。。这样做很有趣:DGo to,按F12,单击“源代码”选项卡,在左侧,您可以看到执行所有操作的代码,而不是查看按下的键。。查看输入中的所有文本,并替换为
split
logic或
regex
。。如果你不给我举个例子,我就不能再告诉你了@爆炸队正是我的目标哈哈,我不认为我能解释得很好我举了个例子。。做起来很有趣:DGo to,按F12,点击“源代码”选项卡,在左边你可以看到代码完成了所有的工作哇,谢谢,伙计,正是我想要的,谢谢:哇,谢谢,伙计,正是我想要的,谢谢:D