一朋友给客户做类似黄页的册子,有 N 多客户名称和电话。客户要求对用户名按笔画数排序整理,如 7画 下有那些用户、8画下有哪些用户等等。
本来可以用 Excel 软件排,但她实在想偷懒,因为 Excel 中并不会把笔画数也给标示出来,还必须自己找到不同笔画数的首条记录,然后添加笔画数说明。
就给她写了这个小脚本, 用其它语言写也可以,但用 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/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>姓氏排序 JS 版</title>
<style>
body {
font-size: 9pt;
}
textarea {
font-size: 9pt;
width: 100%;
margin: 10px 0px;
}
textarea.From { height: 200px; }
textarea.To { height: 350px; }
input.Submit {
margin-top: 20px;
}
</style>
<script language="javascript">
// 姓氏列表(复姓仅取首字)
var _surname = [];
_surname[1] = '乙';
_surname[2] = '丁七卜刁刀乜';
_surname[3] = '干于寸万弋上山广门弓卫也习马子幺';
_surname[4] = '支云亓元木王车丰韦尤戈区仇从公毛午牛长风凤计卞文方亢斗邓孔尹巴水';
_surname[5] = '艾玉古东布石左龙归帅叶卢田申史冉付印仝丛丘白句包乐冯邝召台皮司边';
_surname[6] = '邢戎巩权吉西成毕过匡师吕曲乔年朱伍伏仲任伊伉华向后全邬危刘齐庄江池汤宇安关羊米许祁农那阮阳阴孙纪';
_surname[7] = '麦杜杨邴芮花芦苏劳李吾严巫酉甫励邳抗轩连芈邺肖岐时旷吴岑何但佟邱佘余谷犹狄邹言辛库闵冷汪沐沙沃沈宋张陆阿陈妫姒邵邰';
_surname[8] = '青武林杭苗英苟范昔郁欧卓尚呼明易罗国和邾季竺佴郈侬岳兒郄郐念金鱼周於庞郑冼郎房屈练';
_surname[9] = '贰项柯相柏柳胡荆郝郦南荀荣革查赵哈思香钟钮郜侯段皇禹郗俞独昝逄施闻洪宦宫姜娄祖祝费胥姚贺绕骆';
_surname[10] = '班敖秦桂耿索袁莫聂晋栗贾顾夏原柴党晁晏钱铁俸倪徐殷翁奚卿馀郭高栾席唐凌浦海涂容诸谈展陶姬桑';
_surname[11] = '梅梓菅萧萨黄曹奢龚盛戚常崔符瘐康麻阎渔盖寇梁扈尉屠隗隆巢';
_surname[12] = '琮韩彭葛董蒋壹覃粟惠辜斐喻嵇程税智傅储焦舒鲁童温滑游曾谢禄缗';
_surname[13] = '槐楼赖靳甄蒯鄢蓝蓟蓬蒲蒙楚雷零裘肆訾虞睢路锡简解鲍詹雍满窦谬褚';
_surname[14] = '慕蔡蔺蔚臧管鲜端韶廖阚赛谭熊翟缪';
_surname[15] = '耦横撒墨稷黎樊滕颜潘豫';
_surname[16] = '融薛薄燕霍冀黔穆衡嬴澹';
_surname[17] = '璩檀懋鞠戴赡镡魏繇襄糜麋濮蹇';
_surname[18] = '瞿';
_surname[19] = '酆矍籍灌';
_surname[20] = '露夔';
_surname[21] = '囊鬻';
function findit(zi, dict)
{
for (var i=1; i<dict.length; ++i) {
var _str = dict[i];
for (var j=0; j<_str.length; ++j) {
if (zi == _str.charAt(j)) return i;
}
}
return 0;
}
// txt 待处理的姓名数据行(一行一条信息)
function process(txt, dict)
{
var _out = [];
var _list = txt.split("\n");
_list.sort();
// 姓名数据行循环
for (var i=0; i<_list.length; ++i) {
var _line = _list[i].replace(/^\s+/, '');
if (_line == '')
continue;
// 取第一字
var _chr = _line.charAt(0);
// 笔画数查询
var _num = findit(_chr, dict);
if (_out[_num] !== undefined) {
_out[_num] += _line + "\n";
} else {
_out[_num] = _line + "\n";
}
}
var _ret = '';
for (var i=0; i<_out.length; ++i) {
if (_out[i] !== undefined) {
_ret += i + "画\n" + _out[i] + "\n";
}
}
return _ret;
}
function picking()
{
var _txt = document.myfrm.from.value;
document.myfrm.to.value = process(_txt, _surname);
}
</script>
</head>
<body>
<h1 align="center">姓名笔画排序程序</h1>
<div style="width:998px;margin:20px auto;">
<form name="myfrm">
<textarea name="from" class="From">请填入待处理的姓名数据行。一行一条姓名数据,姓名在前,相关信息在后。</textarea>
<textarea name="to" class="To">此处输出处理后的数据。</textarea>
<div align="center"><input class="Submit" type="button" onClick="picking();" value="处 理" /></div>
</form>
</div>
</body>
</html>
如果不能下载附件,拷贝上面的代码,保存为 .html 就可以了。
或者用这个网址直接使用:http://www.tr169.cn/bm/namesort.html
(注:那是俺公司的服务器,刚刚想到上传了上去,方便不想拷贝下载文件的朋友啦。。呵呵。 这网址不是做广告,仅仅为了方便人,如果管理员觉得不合适,请告诉,俺删除之即是。)
分享到:
相关推荐
如何使用 BIRT 报告设计器来输入 JavaScript 事件处理程序 确定方法执行顺序 提供 ReportDesign.initialize 代码 如何提供 ReportDesign.initialize 方法的代码 为想要跟踪的方法提供代码 提供 ReportDesign....
如何使用 BIRT 报告设计器来输入 JavaScript 事件处理程序 确定方法执行顺序 提供 ReportDesign.initialize 代码 如何提供 ReportDesign.initialize 方法的代码 为想要跟踪的方法提供代码 提供 ...
如何使用 BIRT 报告设计器来输入 JavaScript 事件处理程序 确定方法执行顺序 提供 ReportDesign.initialize 代码 如何提供 ReportDesign.initialize 方法的代码 为想要跟踪的方法提供代码 提供 ReportDesign....
内容概要:本文介绍了AI绘画工具Craiyon,它由Google和Hugging Face研究人员开发,是DALL-E mini的后续版本。Craiyon以其简便的操作、强大的创意激发能力和快速生成图像的特点受到欢迎。用户只需简单输入文字描述,Craiyon即可生成图像,极大地降低了绘画门槛。文章还探讨了Craiyon面临的挑战,包括版权争议、图像质量提升空间和艺术本质的讨论。最后,展望了Craiyon在教育、商业等领域的应用前景,强调其在未来创意和科技融合中的重要性。 适合人群:适合所有对AI绘画感兴趣的用户,尤其是零基础的艺术爱好者、设计师以及需要快速生成创意图像的专业人士。 使用场景及目标:①帮助设计师突破创意瓶颈,快速生成设计草图;②为普通用户提供实现梦想可视化的途径;③在教育领域辅助创意启发课程,提升学生创造力和跨学科学习能力;④在商业领域加快广告设计、游戏开发等项目的创意构思和制作进程。 其他说明:尽管Craiyon存在版权争议、图像质量有待提高等问题,但其简便易用的特点使其成为初学者和创意爱好者的理想选择。未来,随着技术的进步,Craiyon有望克服现有挑战,为用户提供更高质量的服务。
实训商业源码-智慧农场 1.9.2+农业众筹投资+活动报名+智慧农场拼团 +农场乐园-论文模板.zip
实训商业源码-图片表情-论文模板.zip
实训商业源码-微信·小程序模板社交圈-论文模板.zip
实训商业源码-智慧农场小程序1.8.9-论文模板.zip
使用MFC自制的人脸识别小软件,能够实现注册登录基础功能。可以在此基础上进一步开发,实现锁屏登录等功能
实训商业源码-文件快递-论文模板.zip
基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用
面试题总结一,包括常见面试题
PT7C4512-PLL时钟倍频器-中文数据手册
内容概要:本文详细介绍了使用Matlab 2022a中的Simulink工具对风轮机发电系统进行全面建模与仿真的方法。主要内容涵盖风速模型(包括基本风、阵风、阶跃风和随机风)、风力机模型(涉及叶片、轴承、发电机等组件)以及飞轮储能模块的构建。通过这些模型,可以更真实地模拟风力发电系统的动态行为,帮助研究人员和工程师更好地理解风电系统的性能特点及其优化方向。 适合人群:从事风力发电系统研究的技术人员、高校相关专业师生、对风电系统感兴趣的科研工作者。 使用场景及目标:①用于风电场的设计和优化;②评估不同风速条件下的风力机性能;③研究飞轮储能模块对电力输出稳定性的贡献。 其他说明:文中提供了完整的Simulink工程源文件和参考文献,便于读者进一步学习和应用。
实训商业源码-微商城-论文模板.zip
天狼星网络验证,一个可以注入远程分享弹窗,网络验证的工具你还在用本地注册机吗?你想拥有远程分享弹窗的功能吗?即 刻起就摆脱本地,使用网络注册机! 天狼星网络验证破解,支持一键为软件注入弹窗式网络验证,一键为软件注入全屏式网络验证,支持跳加固注入网络验证, 支持远程引流分享弹窗等等,注入后的软件还有独特的签名验证,防二改,防抓包破解 计算机技术发展到今天,很多优秀的软件已经具备了商业价值,很多软件作者希望自己的软件具有注册功能,但是传统的注册 码解决不了多人使用同一个注册码的问题,机器码(本地验证)的方式又比较容易被破解。这些问题都成为大家制作收费软件 的首要问题刀客源码。本系统就是帮助大家解决这一系列问题。如果你想保护自己的知识产权及将自己的知识产权商业化, 你就一定的试试哦。 完全免费使用用户登录、卡密管理等基本功能,无需担心收费功能影响软件使用! 节省软件成本,不需要购置服务器,登录酸酸云科技后台配置自己的应用程序相关设置,客户端直接调用远程webservices就能 实现网络验证! 缩短开发周期不需要过多的繁琐操作,调用酸酸云科技就可以实现验证机制,无需再书写验证用户登录,用户管理,卡密管理等 繁琐的代码,开发软件只要专注程序代码即可! 安全防破解将重要数据存放在服务器中,只有当客户登陆成功后才会返回相应的重要数据,就算被破解,也有盗版弹窗,也是无 法使用! 支持多程序语言开发同时支持多种程序语言,只要程序能够调用DLL的程序语言都可以调用本插件,例如:按键精灵、易语 言、C#、C++等!
实训商业源码-智慧农场V1.9.0+拼团1.0.1+报名1.0.6+众筹投资1.1.0+农场乐园1.0.2-论文模板.zip
包含常用所需的全部固件,创建工程只需要复制工程,然后写入主程序代码即可
繁忙铁路干线施工天窗与列车运行图协同优化研究_于婕.pdf_ (1)
图表效果及代码实现讲解链接:https://blog.csdn.net/zhangjiujiu/article/details/148054080