用javascript将中文名字拆分为姓与名的jquery插件
来源:互联网 发布:qq安全中心mac版 编辑:程序博客网 时间:2024/06/10 20:28
/* * 把姓名分拆成姓与名的方法 * @author waitatlee <waitatlee@163.com> * @date 2012/11/2 */(function($){var hyphenated = ['欧阳','太史','端木','上官','司马','东方','独孤','南宫','万俟','闻人','夏侯','诸葛','尉迟','公羊','赫连','澹台','皇甫','宗政','濮阳','公冶','太叔','申屠','公孙','慕容','仲孙','钟离','长孙','宇文','城池','司徒','鲜于','司空','汝嫣','闾丘','子车','亓官','司寇','巫马','公西','颛孙','壤驷','公良','漆雕','乐正','宰父','谷梁','拓跋','夹谷','轩辕','令狐','段干','百里','呼延','东郭','南门','羊舌','微生','公户','公玉','公仪','梁丘','公仲','公上','公门','公山','公坚','左丘','公伯','西门','公祖','第五','公乘','贯丘','公皙','南荣','东里','东宫','仲长','子书','子桑','即墨','达奚','褚师'];$.fn.splitName = function(userConfig){var self = this;var wraperLabel = self.closest('label');var form = self.closest('form');var config = $.extend({//将用户配置与默认配置合并'lastnameField': 'lastname','firstnameField': 'firstname'}, userConfig);var lastnameField = config.lastnameField, firstnameField = config.firstnameField;if(form.find(':input[name="'+ lastnameField +'"]').size() > 0){jt.alert('警告:在初始化姓名拆分方法时发现表单中含有多于一个name的值为'+ lastnameField +'的元素,这可能会与姓名的拆分结果发生冲突而导致数据丢失,请检查');}if(form.find(':input[name="'+ firstnameField +'"]').size() > 0){jt.alert('警告:在初始化姓名拆分方法时发现表单中含有多于一个name的值为'+ firstnameField +'的元素,这可能会与姓名的拆分结果发生冲突而导致数据丢失,请检查');}self.init = function(){wraperLabel.attr('for', 'notExistsId');var replaceHtml = "<div class='nameInputWraper'><input type='text' placeholder='姓' class='partOne' name='"+ lastnameField +"'><input type='text' placeholder='名' class='partTwo' name='"+ firstnameField +"'></div>";self.replaceWith(replaceHtml);var partOne = form.find('input[name="'+ lastnameField +'"]');var partTwo = form.find('input[name="'+ firstnameField +'"]');partOne.bind('blur.split', function(){var partOneValue = $.trim(partOne.val());var vLength = partOneValue.length;if(vLength > 2){var preTwoWords = partOneValue.substr(0, 2);if($.inArray(preTwoWords, hyphenated) > -1){partOne.val(preTwoWords);partTwo.val(partOneValue.substr(2));}else{partOne.val(partOneValue.substr(0, 1));partTwo.val(partOneValue.substr(1));}}else if(vLength == 2 && !partTwo.val()){partOne.val(partOneValue.substr(0, 1));partTwo.val(partOneValue.substr(1));}});}self.init();};})(jQuery);
先看看这个插件的效果,下面的效果是用CSS控制的,这里根据大家的喜好而定
输入内容前的效果:
输入内容后的效果:
使用的方法:
在表单中写一个文本框,然后在这个文本框的jquery对象上调用splitName方法初始化一下即可,示例:
html代码是这样写滴:
<input type="text" name="fullname">
然后用以下的JS语句初始化:
$('input[name="fullname"]').splitName();
这样当用户把整个姓名都输入在"姓"氏的文本框时,当blur事件发生后,脚本就会自动检查用户的输入并且检查有无复姓出现,智能将姓与名拆开到相应的文本框中,这样一来,用户可以即时检查拆分结果,当发现不对时,也可以马上进行修改了.
全国淘宝游戏点卡,手机话费充值:http://cn008.taobao.com
- 用javascript将中文名字拆分为姓与名的jquery插件
- Excel 姓名分割为 '姓' 与 '名'
- 把姓和名拆分
- 日本人的名字是姓在前还是名在前
- 从键盘输入一个人的姓和名,然后将姓和名的首字母变成大写字母
- 如何将jQuery的"$"转换为别的名字
- 数据清洗小记(12):姓与名的提取
- 将jquery的datatables插件转为中文
- 姓名拆分为姓氏和名字的方法[php版]
- 将整数拆分为勾股数的问题解决
- Javascript函数将文本拆分为相同长度的两个字符串
- jQuery 200多个插件的名字
- 王姓名字大全
- 修改jquery文件上传插件uploadify的英文为中文
- 关于怎么将导出文件设置为中文名字
- javascript中的 以你之姓,惯我之名
- 定义一个map,关键字是家庭的姓,值为vector,保存家中的孩子的名
- 关于名和姓
- IOS成长之路-DES+Base64 加密、解密
- C# 根据进程获取程序主窗口句柄(包括最小化和隐藏程序)
- USB底层协议
- 游标的使用
- 第一篇博客:只是随便写写
- 用javascript将中文名字拆分为姓与名的jquery插件
- ping 代码
- 快速查找内核源代码脚本
- sqrt
- 利用Base64在XML中存储BLOB
- LINUX系统分区及挂载点(转)讲的很清楚
- 编程之美学习笔记(二):中国象棋将帅问题
- cb6的DBNavigator删除提示 汉化
- SQL Server 开发指南