Js中实现拼音和UrlEncode的功能(利用GB和Unicode对照表)

encode|js|拼音

经常用vb写的urlencoding很容易实现UrlEncode,以及利用
http://www.csdn.net/Develop/read_article.asp?id=13846
中的代码很容易改写成vbs从而实现部分汉字的拼音

但由于有些人需要完全用javascript写,而javascript默认是Unicode
所以就需要一个Unicode和GB的转换库

Unicode和GB的转换库和UrlEncode和getSpell函数,请下载
http://www.blueidea.com/user/qswh/qswhU2GB.js

var qswhU2GB=[];//Unicode和GB的对应表,略
var qswhSpell=[];//拼音的对照表,略

function UrlEncode(str){
 var i,c,ret="",strSpecial="!\"#$%&'()*+,/:;<=>?@[\]^`{|}~%";
 for(i=0;i<str.length;i++){
  if(str.charCodeAt(i)>=0x4e00){
   c=qswhU2GB[str.charCodeAt(i)-0x4e00];
   ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
  }
  else{
   c=str.charAt(i);
   if(c==" ")
    ret+="+";
   else if(strSpecial.indexOf(c)!=-1)
    ret+="%"+str.charCodeAt(i).toString(16);
   else
    ret+=c;
  }
 }
 return ret;
}

function getSpell(str,sp){
 var i,c,t,ret="";
 if(sp==null)sp="";
 for(i=0;i<str.length;i++){
  if(str.charCodeAt(i)>=0x4e00){
   c=parseInt(qswhU2GB[str.charCodeAt(i)-0x4e00],16);
   if(c<55290){
    for(t=qswhSpell.length-1;t>0;t=t-2)if(qswhSpell[t]<=c)break;
    if(t>0)ret+=qswhSpell[t-1]+sp;
   }
  }
 }
 return ret.substr(0,ret.length-sp.length);
}

sp是分隔符,范例如下
<script language=javascript src=qswhU2GB.js></script>

<script language=javascript>
document.write(UrlEncode("中文 <>\"#%{}|^~[]`&?+Abc"),"<br>")
document.write(getSpell("中国程序员大本营"),"<br>")
document.write(getSpell("秋水无恨","'"),"<br>")
</script>

 

时间: 2025-01-20 13:13:58

Js中实现拼音和UrlEncode的功能(利用GB和Unicode对照表)的相关文章

js中setTimeOut和setInterval函数定时功能例子

Javascript的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等.但它们的应用是有区别的. setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则是在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除.也就是说setTimeout()只执行一次,setInterval()可以执行多次.两个函数

mysql-Java入门新人求助:Js中表格如何实现保存删除这两个功能?请举例说明

问题描述 Java入门新人求助:Js中表格如何实现保存删除这两个功能?请举例说明 做了一个网页,具有登录功能,其中welcome.jsp为登陆成功后的页面,那么问题来了,我新建了一个表格,如何让这个表格可以进行保存删除这两种操作?请举例说明,谢谢. 解决方案 JS:function del(r) { var i = r.parentNode.parentNode.rowIndex; alert(r.parentNode.parentNode.rowIndex); document.getElem

javascript-怎么做网页自动登录?java+jsp,在js中做这个功能

问题描述 怎么做网页自动登录?java+jsp,在js中做这个功能 怎么做网页自动登录?java+jsp,在js中做这个功能,就是有个checkbox(30天内自动登录),选中之后,登录成功后30天内自动登录 解决方案 用Cookie,把用户和密码保存到本地 解决方案二: 勾选好checkbox 将用户名和密码保存到cookie中返回到客户端,下一次进入到登录界面时候获取该cookie从中取出用户名和密码,进行登录. 解决方案三: 就是保存到cookie 中,,下次登录直接送cookie中读取

js中利用cookie实现记住密码功能_javascript技巧

在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse response Cookie username = new Cookie("username ","cookievalue"); Cookie password = new Cookie("password ","cookievalue&quo

JS实现一个列表中包含上移下移删除等功能_javascript技巧

最近做了一个项目,包括了一个列表页,为了用户体验,操作均使用JS实现,其中包括在列表中实现上移,下移,删除等功能,前台JS,后端数据修改使用AJAX,本文主要说一下前台JS这块 先看一下页面的截图 看一下它的HTML结构,当然,这与前台切图有关,后端程序人员只负责写自己的JS这块,我以我们项目为例,看一下它们切的HTML <ul class="clearfix"> <li class="courseList"> <div class=&

JS中prototype关键字的功能介绍及使用示例

prototype 关键字可以为 JS原有对象 或者 自己创建的类 中添加方法或者属性. 也可以实现继承. 例子: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org

JS中prototype关键字的功能介绍及使用示例_javascript技巧

prototype 关键字可以为 JS原有对象 或者 自己创建的类 中添加方法或者属性. 也可以实现继承. 例子: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org

JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】_javascript技巧

本文实例讲述了JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法.分享给大家供大家参考,具体如下: 实现效果: 图一: 图二: 此例中输入的中文字符串"万万保重",有三个字是多音字,所以alert对话框中显示的是多种读音的组合: 如何实现? 如何实现通过拼音首字母快速查找页面内的中文内容呢? 过程原理是这样的:例如要对一些人名进行快速查找,当页面加载完成后,对所有人名建立一个索引,生成拼音首字母与姓名的对应关系:然后监听键盘事件,当用户按下键盘时,根据键值得到按下的

js 传递函数: JS中setInterval、setTimeout不能传递带参数的函数的解决办法

在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,这就需要想方法解决.一.采用字符串形式:--(缺陷)参数不能被周期性改变setInterval("foo(id)",1000);二.匿名函数包装 (推荐)window.setInterval(function()    {foo (id);    }, 1000);   这样就可以周期性执行foo(id)这个函数,而且把变量id传递进去:三.定义返回无参函数的