【发布时间】:2019-07-21 07:04:35
【问题描述】:
我有一个事件处理程序,它可以按下按键。我希望在不按住shift 键时获得等效字符。
我发现不同特殊字符的大小写字符代码不同。
对于字母,在 js 中,我使用 value.toLowerCase() 但这仅适用于字母而不是特殊字符。
没有找到任何自动化的方法,我最终手动编写了这个映射:
const getLowerCaseMap = (val:string)=>{
//function gets a string of length 1
switch(val){
case '~' : return '`' ;
case '{' : return '[' ;
case '}' : return ']' ;
case '"' : return "'" ;
case ':' : return ";" ;
case '>' : return "." ;
case '<' : return "," ;
case '?' : return "/" ;
case '|' : return "\\" ;
case '_' : return "-" ;
case '!' : return '1' ;
case '@' : return '2' ;
case '#' : return '3' ;
case '$' : return '4' ;
case '%' : return '5' ;
case '^' : return '6' ;
case '&' : return '7' ;
case '*' : return '8' ;
case '(' : return '9' ;
case ')' : return '0' ;
default : return val.toLowerCase()
}
}
在没有上述映射函数的情况下,javascript 或 hack 中是否有任何函数可以使编写成为可能?
【问题讨论】:
-
假设
[是{的小写版本是不正确...它们只是不同的字符。您可以通过shift切换它们,这仅仅是因为您使用的是英文键盘 -
不同的键盘可以有不同的映射,所以没有自动或原生的功能来做这样的事情,如果你上面的映射涵盖了你所有的情况,那很好,但你不能想当然如果您的用例涵盖所有情况
标签: javascript events