Web开发时可能经常会用到在keyPress时获得输入的字符。String.fromCharCode()可以来实现这个,不过这个函数在你使用Shift键来输入特殊字符时就不管用了,需要改造一下,这个帖子给出了改造的方法,经测试在各种主流浏览器均正常。

<html>
<head>
<title >mapKeyPressToActualCharacter test</title>
<script language="javascript" type="text/javascript">function onKeyPress() {var e = window.event || e;var keyCode = e.keyCode;if (keyCode == 8) {this.criteria.value = this.criteria.value.substring(0, this.criteria.value.length - 1);}else {this.criteria.value+= mapKeyPressToActualCharacter(event.shiftKey, keyCode);}}function mapKeyPressToActualCharacter(isShiftKey, characterCode) {if (characterCode === 27|| characterCode === 8|| characterCode === 9|| characterCode === 20|| characterCode === 16|| characterCode === 17|| characterCode === 91|| characterCode === 13|| characterCode === 92|| characterCode === 18) {return false;}if (typeof isShiftKey != "boolean" || typeof characterCode != "number") {return false;}var characterMap = [];characterMap[192] = "~";characterMap[49] = "!";characterMap[50] = "@";characterMap[51] = "#";characterMap[52] = "$";characterMap[53] = "%";characterMap[54] = "^";characterMap[55] = "&";characterMap[56] = "*";characterMap[57] = "(";characterMap[48] = ")";characterMap[109] = "_";characterMap[107] = "+";characterMap[219] = "{";characterMap[221] = "}";characterMap[220] = "|";characterMap[59] = ":";characterMap[222] = "\"";characterMap[188] = "<";characterMap[190] = ">";characterMap[191] = "?";characterMap[32] = " ";var character = "";if (isShiftKey) {if (characterCode >= 65 && characterCode <= 90) {character = String.fromCharCode(characterCode);} else {character = characterMap[characterCode];}} else {if (characterCode >= 65 && characterCode <= 90) {character = String.fromCharCode(characterCode).toLowerCase();} else {character = String.fromCharCode(characterCode);}}return character;}</script></head>
<body><input name="test" type="text" onkeypress="onKeyPress();"/>
</body>
</html>

测试结果截图,在Firefox, Chrome and IE.和Safari下均通过:

转载于:https://www.cnblogs.com/junqilian/archive/2012/08/01/2618197.html

用JavaScript获取输入的特殊字符相关推荐

  1. ajax获取cpu的占用率,JavaScript获取当前cpu使用率的方法

    本文实例讲述了JavaScript获取当前cpu使用率的方法.分享给大家供大家参考,具体如下: 想获取当前系统cpu的使用率,如果允许使用hta,可以使用以下的代码获取当前cpu的使用率(较为精确) ...

  2. JavaScript获取文本框光标的像素位置(转载)

    [简介]本文主要实现获取textarea和input光标的像素位置,即光标的offsetLeft与offsetTop.可实现如下效果: 首先说明一下,在网上搜到的很多代码是如何获取输入光标位置的如下代 ...

  3. javascript获取窗口位置、绝对位置、事件位置等

    有段时间没更新博客了,工作实在太忙了,加班加班再加班就是我们这个行业的常态吧...还好最近把工作进度完成了,终于有些空余时间了.关于<Javascript高级程序设计>系列,我并没有弃坑, ...

  4. 网页自动加拼音html,javascript实现输入中文自动生成拼音

    需求:输入中文,输入框失去焦点后自动生成全写拼音及简写拼音. 分享一款轻量级JS插件:Convert_Pinyin.js(文末可以下载). 只需引入一个JS文件,然后调用对象里在JS方法函数即可,演示 ...

  5. JS 获取输入时间的前一年、前三个月

    通过 getFullYear 获取输入时间的年限,再使用 setFullYear 设置年限. // 获取输入时间的上一年 export function getLastTime(localdate) ...

  6. 如何通过JavaScript获取搜索引擎搜索关键词

    获取页面的搜索引擎搜索关键词 要想获取当前页面的搜索引擎搜索关键词,首先要获取到当前页面的来源地址,我们可以通过document.referrer来获得.取到来源URL地址后,可以根据&进行数 ...

  7. js 条码枪扫描_使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解

    下面通过实例代码给大家介绍js扫码枪扫描条形码的实现方法,具体代码如下所示: var keycode = ""; var lastTime=null,nextTime; var l ...

  8. JavaScript 获取每月最大的天数

    JavaScript 获取每月份最大天数 入门JavaScript很容易的,不需要复杂的编程环境搭建,只需要从一个浏览器中打开开发工具,使用那个控制台就能写JavaScript代码了,是不是很方便鸭, ...

  9. python从键盘获取输入并排序_python从键盘输入数字并排序-女性时尚流行美容健康娱乐mv-ida网...

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python 读取 键盘 输入 ...

  10. 使用JavaScript获取文本框的值方法

    使用JavaScript获取文本框的值方法 第一种方法: 重点看<a onclick="add()">获取值</a> 在script中对应的是标签id的值, ...

最新文章

  1. 记一次Java多线程程序调试经历:HttpClient 死锁
  2. PowerPoint出现“受保护的视图,Office已检测到该文件存在问题。编辑此文件可能会损坏您的计算机。”的提示
  3. linux c语言 ppt,linux操作系统下c语言编程入门.ppt
  4. 机器学习-关联之FP-Growth算法原理及实战
  5. pyspark读写SequenceFile
  6. 路由有类查找和无类查找方式
  7. js获取单选按钮的值
  8. python find函数实现原理_非常干货:Python 探针实现原理
  9. eslint airbnb 不允许尾随逗号
  10. MySQL数据库在众多表中对表名的查询及预处理存储过程(变量做表名)
  11. MATLAB图自编码器
  12. 测网速还能拿奖励?测速 App 的新玩法
  13. matlab size11,matlab学习笔记11_3高维数组操作 filp, shiftdim, size, permute, ipermute
  14. cuda必须装在c盘吗_善待你的系统盘——系统盘(C盘)解决方案
  15. 操作系统---IO设备
  16. unity3D一些教程
  17. 白话前沿IT技术系列—云计算
  18. Metasploit---端口扫描模块
  19. 如何打开java工程文件
  20. 健康——每日饮水量建议

热门文章

  1. 让MacOS废纸篓中超过30 天的文件自动清除
  2. 利用spring的CommonsMultipartResolver上传文件
  3. 【故障处理】CRS-1153错误处理
  4. TDD(测试驱动开发)学习一:初识TDD
  5. 手机号码归属地查询接口大全
  6. iOS 6分享列表——UIActivityViewController详解
  7. 网络布线指南:光纤基础知识大扫盲
  8. Spring Boot官宣:正式弃用 Java 8,最低要求 Java 17!怎么办?
  9. Java中的对象都是在堆上分配的吗?
  10. 微信类APP如何架构才能省流量