最多保留小数点后四位,且去除最后的0


	select Convert(decimal(10,4),123.45) --123.4500

	select CONVERT(FLOAT,Convert(decimal(10,4),123.45)) --123.45

	
	select Convert(decimal(10,4),123.4534532) --123.4535

	select CONVERT(FLOAT,Convert(decimal(10,4),123.4534532)) --123.4535

因业务需求,要求最多保留小数点后四位,若不够四位时,应去除最后的0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人力资源管理软件功能介绍 本人力资源软件包含人事档案管理 本人力资源软件包含工资管理 本人力资源软件包含考勤管理 本人力资源软件包含绩效管理 本人力资源软件包含用户管理 本人力资源软件软件界面美观,使用方便 人力资源管理软件特色介绍 本人力资源软件包含支持单机、网络,可以通过互联网安全接入企业内网,无需域名或固定IP 用户资料可定制扩展,界面可定义,适应性强 大量的统计分析报表,便于掌握业务情况 本人力资源软件包含提供了自定义报表功能 内置解析器引擎,支持复杂灵活的薪酬制度 本人力资源软件包含支持web查询 小秘书提供了常用的办公功能 本人力资源软件包含含有大量的实用工具,如休假管理、宿舍管理、物品领用管理等等,为工作带来方便 导航界面可以切换定制,便于设置自己常用的功能 软件界面美观,使用方便 本人力资源软件包含可以输出到excel、wps表格、html等文件 本人力资源软件包含提供虚拟域名互联网浏览器访问 支持中控、依时利、舒特、文本接口等多种考勤机 绿色软件,安全方便 单机永远免费,升级免费 人力资源管理软件人事档案功能介绍 人事档案管理 支持分公司管理(人力资源软件) 员工综合报告,员工相关的各类信息(基本记录、奖惩记录、物品领用、调岗记录、福利等)一目了然。 工号修改(人力资源软件) 办公物品管理 员工福利管理(人力资源软件) 卡片打印,可自己设计定制 调岗调职历史(人力资源软件) 日期提醒,可对生日、合同期、证件期限等自动提醒 保险管理(人力资源软件) 培训历史管理 员工证件管理(人力资源软件) 员工奖励管理(人力资源软件) 员工惩罚管理(人力资源软件) 支持显示定制 生成各类统计报表,可定制方案(人力资源软件) 查询非常方便,可以自定义方案 提供了演示数据库(人力资源软件) 支持数据导入,启用非常方便(见dll目录下导入模板) 支持自定义信息扩展 人力资源管理软件工资功能介绍 (人力资源软件)工资数据管理,编辑、审核、反审核、作废 工资单打印,可自己设计定制 方便的工资录入界面,可指定部门显示、指定科目显示,自动计算 (人力资源软件)支持计算定义,可设计灵活的薪酬方案 多工资方案定义 支持工序定义、计件工资(人力资源软件) 支持和考勤数据接口 支持数据复制,可指定条件复制部分数据,可从多个历史单据中复制 支持辅助数据管理(人力资源软件)(单机免费) 提供个税工具,应发金额、所得税、应发任输一个数据自动计算另外2个 灵活生成各类统计报表,可定制方案 查询非常方便,支持组合条件查询 支持员工数据导入,支持初始工资数据导入,启用非常方便(见dll目录下导入模板) 提供了演示数据库 人力资源管理软件考勤功能介绍 自动生成调休标准(人力资源软件) 员工排班,可按部门、班组、个人排班 数据采集,支持定时、循环自动采集,也支持脱机文件读取 支持手工电脑考勤(人力资源软件) 自动生成加班记录和缺勤记录 支持计算相关的工资数据(人力资源软件) 数据处理,可重复处理,修正排班失误 考勤台帐,支持二次手工修正 异常关注,可将出勤异常的员工信息生成异常关注记录 考勤报表,生成各类统计报表,可定制方案 考勤班次,支持多班次定义 考勤班组 考勤机定义,支持多种多台考勤机,可动态扩展 出差记录管理(人力资源软件) 请假记录管理(人力资源软件) 调休记录管理(人力资源软件) 加班记录管理(人力资源软件) 支持和工资单接口(人力资源软件) 支持自定义文本接口 提供了演示数据库 人力资源管理软件绩效功能介绍 考核数据管理,编辑、审核、反审核、作废(人力资源软件) 方便的数据录入界面,可指定部门显示、指定科目显示,自动计算 支持计算定义,可设计灵活的考核方案 多考核方案定义(人力资源软件) 支持考核批次管理 支持多考核人考核,可指定不同权重,自动计算结果 灵活生成统计报表,可按批次统计,也可多批次统计,支持定制显示方案 查询非常方便,支持组合条件查询 支持历史数据比对(人力资源软件) 支持数据导入,启用非常方便 提供了演示数据库(人力资源软件) 人力资源管理软件使用说明 运行oclient.exe,初始化密码为空的 默认为演示库供学习练习,正式使用时使用右边的选择数据库切换到正式库 采用模板文件进行一次性导入或者按下面分别建立相关信息 建立部门信息,支持导入 建立岗信息,支持导入 调整数据字典,支持导入 资料导入,日常工作 人力资源管理软件修改记录 2008-01-18 人力资源管理软件发布1.0版本 2008-01-19 人力资源管理软件做了以下改进 改进员工编辑界面的日期(感谢中秋月)(人力资源软件) 解决部门定义中的一个BUG(感谢蓝血人) 人力资源管理软件增加退出系统时提示(感谢中秋月) 2008-01-22 人力资源管理软件做了以下改进 人力资源管理软件改进了员工调岗的编辑界面(感谢缺月疏桐) 增加了计件工资的功能,包括工序定义、计件录入和查询(感谢demigood意见)(人力资源软件) 2008-01-24 人力资源管理软件做了以下改进 改进了统计报表小数后有时候出现误差的问题(感谢54HAPPY毛毛)(人力资源软件) 人力资源管理软件计件工资录入增加了根据单价重新计算的功能 人力资源管理软件员工资料录入进行了优化(感谢缺月疏桐,方方) 2008-01-28 人力资源管理软件做了以下改进 人力资源管理软件提供了工号修改功能(在员工管理窗口的功能菜单下)(感谢中秋月,方方) 员工资料增加了离职原因信息 人力资源管理软件增加了离职分析报表 打印模板设计进行了优化,支持分类管理(人力资源软件) 人力资源管理软件登录界面进行了优化,保存上次登陆工号(感谢灵戈Lyngle) 2008-02-17 人力资源管理软件发布1.1版本,做了以下改进 员工管理界面信息定制的优化(感谢笑看人生) 人力资源管理软件调岗离职增加调岗记录时,把员工资料同步掉(感谢缺月疏桐) 增加了岗级别的报表(感谢天隼)(人力资源软件) 优化了培训记录管理(感谢水天仙YOYO) 人力资源管理软件解决登陆界面服务器名无法显示全的问题(感谢山中人) 优化了人力资源管理软件保存到excel数值类型的问题(感谢54HAPPY) 增加了合同管理功能(人力资源软件) 解决人力资源管理软件工资帐套选择的公式显示不全的问题(感谢vivi) 工资录入支持导入保险数据(人力资源软件) 人力资源管理软件其他的一些优化改进(感谢中秋月、提出意见的朋友们) 2008-02-20 人力资源管理软件做了以下改进 考勤管理增加了查看某一天哪些人休息的功能(感谢人生淡泊) 人力资源管理软件解决了考勤台帐的显示问题(感谢天隼) 考勤班次处理做了优化,增加了打卡的分析类型(参考型)(感谢天隼) 保险支付中提供了excel导出(感谢提出意见的朋友)(人力资源软件) 2008-02-22 人力资源管理软件做了以下改进 人力资源管理软件解决资料编辑合同类别选择的显示问题(感谢天隼) 2008-02-25 人力资源管理软件做了以下改进 优化了通用资料列表方式导入模块,支持更新模式(感谢Snailmail)(人力资源软件) 2008-02-28 人力资源管理软件做了以下改进 岗管理处能否按公司排列显示(感谢蓝血人) 员工资料管理界面的公司和部门显示做了优化 人力资源管理软件奖励管理界面的公司和部门显示做了优化 培训管理界面的公司和部门显示做了优化 处罚管理界面的公司和部门显示做了优化(人力资源软件) 报表目录分组显示进行了优化(人力资源软件) 解决了保险支付多次选择显示的漏洞(感谢天隼) 2008-03-02 人力资源管理软件做了以下改进 工资录入的部门索引做了优化,工资单打印增加了企业汇总和部门汇总(感谢中秋月) 岗异动的员工选择做了优化(感谢中秋月)(人力资源软件) 解决了员工管理自定义条件查询数据的显示问题(感谢中秋月) 福利管理的员工选择做了优化(感谢天隼)(人力资源软件) 2008-03-04 人力资源管理软件做了以下改进 人力资源管理软件增加了新的个税税率配置数据,如果工资单月份为200803后,则自动按照新的税率计算。(感谢54HAPPY) 2008-03-09 人力资源管理软件发布1.2版本,做了以下改进(感谢笑看人生、中秋月、天隼、蓝血人等各朋友) 人力资源管理软件支持工号的自动生成 人力资源管理软件支持相关配置信息编号的自动生成 各模块支持直接输入员工姓名检索 工资定制和录入做了优化,更为方便(人力资源软件) 各模块选择员工提供弹出式选择 对人力资源管理软件多分公司操作的方便性做了很多优化 人力资源管理软件单据打印模板定制做了优化,具备更强的灵活性 考勤台帐管理支持按计算结果和处理结果分别检索 2008-03-16 人力资源管理软件发布1.3版本,做了以下改进 增加按公司分类统计的工资报表(感谢蓝血人) 单据界面上增加了打印按钮(感谢中秋月) 人力资源管理软件增加了员工技能管理(感谢Snailmail) 员工分类报表增加了工龄的条件(感谢长征)(人力资源软件) 人力资源管理软件增加了人才卡片及跟踪管理 人力资源管理软件对单据设计模块进行了优化 针对98环境做了优化(感谢中秋月) 2008-03-25 人力资源管理软件发布1.4版本,做了以下改进 人力资源管理软件员工资料增加了辅助分组(感谢中秋月,天隼) 保险基数支持了导入(感谢Lucky Cat)(人力资源软件) 计件工资支持了产品和工单(感谢demigood、baidu )(人力资源软件) 支持不同的操作员限制不同的公司 人力资源管理软件权限控制细化(感谢中秋月) 处理了保险标准报表的漏洞(感谢杰杰) 员工分组管理做了优化(人力资源软件) 增加了人力资源管理软件考勤基本参数定义模块(感谢天隼) 人力资源管理软件计件工资支持导入 工资帐套定义和工资单支持制定打印模板(感谢中秋月) 绩效考核的指标扩展了一些内容,如信息来源,适用范畴,获取方式,目标单,计算公式等。(感谢annemy,hrjxhu) 增加了一个数据分析模块(人力资源软件) 人力资源管理软件其他的一些优化(部门结构自动设置顺序码、部门在岗管理里的刷新、民族排序等)(感谢梦想成真和其他朋友) 2008-03-26 人力资源管理软件做了以下改进 解决了多公司情况下部门显示不正常的漏洞。(感谢养山芋) 人力资源管理软件员工提醒界面增加了入职日期、岗、上岗日期、岗级别。(感谢冰雪) 解决了合同类型定义里文件选择不显示的问题。 解决了人力资源管理软件合同管理新增编辑时合同类型不符合的问题。 人力资源管理软件解决了合同类型定义里面的自定义扩展属性删不掉的问题。(感谢☆缘☆) 2008-04-09 人力资源管理软件发布1.5版本,做了以下改进 员工资料支持拼音查询(感谢☆缘☆) 员工资料输入身份证后自动填写籍贯、出生日期和性别(感谢☆缘☆) 员工资料支持描述信息(如工作经历等),可自定义(配置数据字典员工描述信息)(感谢那年冬天,中秋月) 人力资源管理软件支持照片的打印(照片对象标识 emp_pict,类型为图片)(感谢Lucky Cat) 员工编辑和管理体现工龄和年龄(打印标识对应age、work_age、work_age_c)(感谢hui~星辉~) 一个岗允许对应多个部门(便于多分公司管理)(感谢忆江南、冰雪、欢浪家园) 人事合同管理显示增加显示合同起止日期(感谢我就是我) 人力资源管理软件通用、专用导入模块做了较大优化 考勤提供批量删除打卡记录、考勤台帐功能模块(感谢天隼、沈振刚) 考勤支持自动生成缺勤记录(感谢天隼) 补卡编辑支持填写补卡原因(感谢greensea) 考勤支持自动生成加班记录记录(感谢天隼)(人力资源软件) 考勤支持自动修正请假时间(感谢天隼)(人力资源软件) 考勤支持按月统计并保存(感谢天隼、沈振刚)(人力资源软件) 考勤支持按照考勤数据计算相关工资数据(感谢天隼、沈振刚) 工资编辑支持从考勤月统计数据导入相关数据(感谢天隼、沈振刚) 人力资源管理软件增加考勤工资计算公式定义,不同员工可对应不同公式 绩效考核计划和考核做了很大优化(感谢annemy)(人力资源软件) 修正环境变量处理的一个漏洞(感谢大唐) 修正保险支付再次选择,记录多后异常的漏洞(感谢杰杰)(人力资源软件) 简化网络模式的配置(感谢很多朋友) 其他的一些优化(感谢杰锋、养山芋、忆江南、柳照小楼东,还有许多提出意见的朋友) 2008-04-09 人力资源管理软件修正了一些问题 人力资源管理软件解决了有些拼音码检索不到的问题(感谢☆缘☆,腿腿*^ō^*乖) 员工定制界面重叠问题(感谢我就是我)(人力资源软件) 考勤天和小时转换(感谢iplan) 人力资源管理软件考勤计算匹配请假、出差的漏洞(感谢iplan) 自动执行选项限制为本人(感谢iplan) 籍贯如果有县则不显示市的信息(感谢☆缘☆) 2008-04-10 人力资源管理软件修正了一些问题 修正了考勤班组无法删除的漏洞(感谢hcs5580 ) 人力资源管理软件台帐统计部分进行了优化,缺勤合计改为天数(感谢iplan) 2008-04-11 人力资源管理软件修正了一些问题 修正了员工资料岗显示不正常的漏洞(感谢bravelc )(人力资源软件) 保险标准支持时间段的查询(感谢☆缘☆) 人力资源管理软件调岗调职增加了公司信息(感谢欢浪家园) 2008-04-13 人力资源管理软件修正了一些问题 籍贯长度扩展了(感谢我就是我) 根据身份证查找籍贯做了优化(感谢☆缘☆) 考勤自动采集文本文件做了优化(感谢杰锋) 2008-04-23 人力资源管理软件发布1.6版本,做了以下改进 计件工资单价扩展,支持到小数点后4,精度达到0.0001元(感谢baidu) 解决单据扩展属性无法删除的漏洞(感谢僵本) 计件工资支持批量导入 合同管理模块增加从员工资料导入合同信息的功能(右树菜单)(感谢Lucky Cat,我就是我) 员工福利体现分公司信息(感谢欢浪家园) 物品管理体现分公司信息(感谢我就是我) 人事合同增加时,同步员工档案(感谢Lucky Cat) 人力资源管理软件员工关注体现分公司信息(感谢我就是我) 奖励记录体现分公司信息 惩罚记录体现分公司信息 奖励记录支持批量导入(感谢洛才) 培训记录体现分公司信息 人事合同体现分公司信息 惩罚记录支持批量导入(感谢洛才) 培训记录支持批量导入(感谢丁桃) 工资单打印支持是否需要部门汇总数据选项(感谢zhlaoli) 工资报表增加分公司检索选项(感谢) 计件工资提供批量清除历史记录功能(感谢baidu) 人力资源管理软件员工关注体现分公司信息(感谢我就是我) 员工排班体现分公司信息 排班列表体现分公司信息 增加出差记录、请假记录、调休记录、加班记录、缺勤管理报表;(感谢天顺) 人力资源管理软件手工打卡界面增加一个日期时间显示;(感谢明月) 考勤出差记录体现分公司信息 考勤请假记录体现分公司信息(感谢我就是我) 考勤调休记录体现分公司信息 考勤加班记录体现分公司信息 考勤缺勤记录体现分公司信息 其他的一些优化(感谢杰锋、养山芋、*缘*、忆江南、柳照小楼东,还有许多提出意见的朋友) 2008-04-24 人力资源管理软件修正了一些问题 解决模糊查询输入只要带有字母s报错的漏洞(感谢bravelc ) 人力资源管理软件解决人事合同按日期条件检索出错的问题(感谢Fantasy Ls ) 2008-04-29 人力资源管理软件修正了一些问题 解决计件工资录入界面部门切换有时列表中多出一人的漏洞(感谢baidu ) 解决岗维护明细中删除岗不响应的问题(感谢独享别离 ) 2008-05-04 人力资源管理软件做了以下改进 增加了宿舍管理模块(感谢咏梅) 人力资源管理软件报表打印的时候增加了副标题,便于区分查看检索条件(感谢baidu ) 解决了工资单打印格式设置提示无权操作的问题(感谢baidu ) 2008-05-09 人力资源管理软件做了以下改进 工资单打印里面支持合计(感谢僵本 ) 人力资源管理软件员工管理界面增加按年显示的工龄(感谢hui~星辉~) 报表图形分析支持指定记录数(感谢冰雪 ) 列表里面只要按Ctrl+B就可以复制里面的数据到excel 人力资源管理软件其他做了一些优化 2008-05-14 人力资源管理软件做了以下改进 增加了休假标准管理及相关报表(感谢青莲居士CCNP) 考核指标增加了被考核后不允许删除的限制(感谢V$晴天) 工资单增加了查找员工功能(感谢中秋月) 绩效考核报表增加了单行合计内容(感谢木椽) 人力资源管理软件处理了工资单删除员工后和报表不一致的漏洞(感谢wkw) 对员工生成拼音缩写码做了优化(感谢baidu) 人力资源管理软件其他做了一些优化 2008-05-21 人力资源管理软件做了以下改进 绩效考核增加累计因素分值的模块,支持导入(感谢木椽) 员工绩效考核支持导入累计因素分值(感谢木椽) 为避免带来困扰,员工资料和调岗调职信息独立,不再互相同步 员工排班设置时,选择部门后下面员工名册中离职名单不显示了(感谢hui~星辉~) 考勤台帐明细管理界面列表显示内容支持定制(感谢hui~星辉~) 人力资源管理软件其他做了一些优化 2008-05-25 人力资源管理软件做了以下改进 分公司定义编辑:新增时顺序码自动生成; 人力资源管理软件员工保险清单编辑做了优化 员工调岗调职记录管理:当查询框的值变化后,相关复选框自动选中; 物品领用记录管理做了优化 人力资源管理软件保险支付界面下面显示出人数来(感谢青莲居士CCNP) 工资单编辑界面做了优化,速度更快(特别感谢中秋月) 工资科目定义编辑:新增时顺序码自动生成; 工资表查询:单据日期开始查询日期初始设置为本月初; 员工工资管理:单据日期开始查询日期初始设置为本月初; 计件工资管理:当订单编号、产品种类查询框的值变化后,复选框能自动选中; 考勤班组定义管理:查询某一员工所属的班组增加查询条件; 其他做了一些优化 2008-05-26 人力资源管理软件做了以下改进 人力资源管理软件模板文件导入方式的员工资料项目允许定义了;(感谢M PLAN ,有牙齿) 福利定义挂接到功能菜单下(感谢沙山兔) 人力资源管理软件解决请假字典改了后界面下拉列表不更新问题(感谢沙山兔) 2008-05-28 人力资源管理软件做了以下改进 工资项目计算支持引用员工资料信息; 工资项目定义里面加了合法性检查,不允许包含运算符号;(感谢點煙抽寂寞) 人力资源管理软件考勤机接口采用统一规范; 2008-05-28 人力资源管理软件做了以下改进 人力资源管理软件统计报表合计后加了记录数;(感谢可儿) 2008-06-04 人力资源管理软件发布1.7版本,做了以下改进 支持领导查询,WEB接入方式 支持WEB方式考勤打卡 考勤支持自动插班(感谢小太阳、明) 其他的一些优化 2008-06-08 人力资源管理软件做了以下改进 工资增加了生成银行代收文件的功能 工资录入窗口单元格移动增加了提示,便于查看(感谢中秋月) 下拉员工选择做了优化(感谢Simon) 领导查询做了优化 工资计算公式的时候科目对应值传入不再乘以100(感谢點煙抽寂寞、锁所妈妈) 其他的一些优化 2008-06-09 人力资源管理软件做了以下改进 图形报表增加标签显示方向的选项(感谢冰雪) 考勤报表做了优化(感谢Allen ) 其他的一些优化 2008-06-10 人力资源管理软件做了以下改进 解决考勤关注和月统计台帐权限码不一致的问题(感谢Simon) 考勤排班里面去除已经离职的人员(感谢天隼,Allen,青莲居士CCNP) 2008-06-11 人力资源管理软件做了以下改进 解决了考勤跨天班次处理的漏洞(感谢Simon) 网页上增加基于员工资料的企业通讯录功能(感谢木木) 员工报表做了优化(感谢Fantasy Ls) 2008-06-12 人力资源管理软件做了以下改进 增加了一张的物品领用报表(月份、部门、物品性质、物品、数量、金额)(感谢鸳) 考勤月台帐增加统计开始日期和结束日期,提取数据功能要根据这2个日期来限制,比如200806的台帐,可能用的统计数据是从20080526到20080625的(感谢Simon) 处理了排班台帐部门可能和资料不一致的问题(感谢Simon) 优化了台帐处理(感谢Simon) 2008-06-13 人力资源管理软件做了以下改进 考勤台帐处理改为上班取第一条时间段内的记录,下班取最后一条时间段内的记录(感谢天隼,Simon) 解决考勤打卡记录采集权限码不一致的问题(感谢Simon) 2008-06-15 人力资源管理软件做了以下改进 员工管理界面的窗口大小支持定制了(感谢风中游隼) 2008-06-23 人力资源管理软件做了以下改进 考勤处理支持批量补卡(感谢Simon) 处理了请假、缺勤、出差、加班导入权限码不一致的问题(感谢Simon) 优化了领导查询的报表(感谢Fantasy Ls) OA增加操作员关系定义(定义上下级,用于控制权限) OA增加了任务管理(基于WEB) 其他的一些优化 2008-06-26 人力资源管理软件做了以下改进 增加了一张宿舍管理报表(感谢沙山兔) OA(WEB)首页进行了优化 OA(WEB)增加了计划管理 OA(WEB)增加了新闻管理 OA(WEB)增加了经典警句管理 其他的一些优化(感谢提出意见的朋友) 2008-07-03 人力资源管理软件做了以下改进 WEB访问做了一些优化 2008-07-15 人力资源管理软件做了以下改进 增加了BBS(企业论坛)功能模块 增加了Blog(企业博客)功能模块 增加了员工证照管理模块(感谢蓝血人) Web访问功能做了一些增强 2008-07-28 人力资源管理软件发布1.9版本,做了以下改进 增加了招聘计划管理模块(感谢查无此人) 增加名片管理模块 增加日程安排模块 考勤排班支持了循环排班,支持针对部门、班组、员工的自动班次设置(感谢Allen、kepo、haiyunfei) 办公物品管理进行了改进,支持存量管理,购买、发放、盘点等操作(感谢风尘) 工资管理增加了根据税后应发反算税前应发的函数 优化了显示定制(感谢秒表) 其他的一些优化(感谢辉辉、狼人和其他提出意见的朋友们) 2008-08-03 人力资源管理软件做了以下改进 打印模板增加首页标题区(只在第一页打印)(感谢中秋月) 打印模板增加首页是否打印顶部区的选项(感谢中秋月) 增加了调岗调职自动同步档案信息的选项(感谢Helios) 保存支持输出到html格式文件 登录用户名支持选择 2008-08-12 人力资源管理软件做了以下改进 解决了小秘书发短信中报端口不能为空的问题 解决了工资、银行文件保存为excel文件第一列数据项不能合计的问题(感谢ucw) 关闭了默认弹出的浏览窗口 其他的一些优化 2008-08-13 人力资源管理软件做了以下改进 培训记录增加了小时数(感谢深海鱼) 人才卡片增加了人才来源(感谢迷路) 保存到excel做了改进(感谢依依) 其他的一些优化 2008-08-20 人力资源管理软件做了以下改进 增加了调薪管理模块(感谢钢铁汉子) 增加了发卡换卡模块(感谢囧rz) 绩效累计分允许输入负数(感谢清风-丽影) 保险类型定义增加了小数数选项(感谢僵本和提出意见的朋友) 考勤增加了下次打卡最小间隔选项参数(感谢囧rz) 处理了员工奖罚数据字典的自动刷新问题(感谢浪迹★天涯) 保险标准编辑做了优化(感谢僵本) 格式显示针对升级做了优化(感谢阳光早享受) 工资计算支持月工龄参数 导入模块做了优化 其他的一些优化(感谢提出意见的朋友们) 2008-08-22 人力资源管理软件做了以下改进 增加了培训教师管理模块(感谢琳子) 增加了培训需求管理模块(感谢深海鱼) 人事管理增加了一张按辅助分组统计的报表(感谢中秋月) 保存到文件做了优化 其他的一些优化(感谢提出意见的朋友们) 2008-08-24 人力资源管理软件做了以下改进 优化了报表打印功能 优化了保存到文件功能(感谢傻呆了) 基本人事报表部分条件选项增加了辅助分组(感谢中秋月) 培训教师管理模块增加了定义教师类型的按钮(感谢傻呆了) 2008-08-26 人力资源管理软件做了以下改进 支持数据库扩展文件的管理,照片从数据库剥离,便于备份(感谢RickLee) 工资单打印增加了0是否打印的选项(感谢风起缘来) 保险标准支持历史记录的保存(感谢lzb700) 电脑考勤支持按照员工工号和密码来考勤(感谢 lmd) 解决考勤台帐显示定制里工号定制了也不显示的问题(感谢囧rz) 增加了数据库压缩功能(感谢RickLee) 解决教师类型无法定义的问题(感谢傻呆了) 员工资料增加了打卡密码 OA权限控制的优化(感谢阿炎电脑) 其他的一些优化(感谢提出意见的朋友们) 2008-08-29 人力资源管理软件做了以下改进 员工资料增加了员工文件管理,可以用来管理员工的证件复印件、简历文件等(感谢【强】、RickLee) 工资单打印增加了打当前页按钮(感谢风起缘来) 报表打印增加了标题、表格线等选项(感谢baidu,风起缘来) 考勤员工汇总表增加了工号(感谢囧rz) 处理了08-26升级没有扩展保险支付表的问题(感谢 lzb700) 其他的一些优化(感谢提出意见的朋友们) 2008-09-02 人力资源管理软件做了以下改进 解决了调岗调职的一个漏洞(感谢风舞雪) 2008-09-05 人力资源管理软件做了以下改进 工资软件里的工资单,下面加了人数汇总(感谢水至纯) 工资单增加了显示是否包含子部门数据的选项(感谢水至纯) 调岗调职清单界面支持显示定制(感谢风舞雪) 解决奖励记录管理里新增默认部门未设置的问题(感谢风舞雪) 工资单从外部复制数据后要提示后自动重新计算(感谢傻呆了) 解决了部门结构树显示顺序不一致的问题(感谢我就是我) 报表保存到文件增加了合计行(感谢大富猫) 工资单保存到文件增加了合计行(感谢大富猫) 从历史工资导入支持是否复制公式的选项(同时作为习惯参数)(感谢傻呆了) 合同管理要支持同步到资料(感谢我就是我) 员工证件管理增加一个证件状态(state)(感谢傻呆了) 2008-09-08 人力资源管理软件做了以下改进 员工证件中加上一个备注信息(感谢阿炎电脑) 小秘书增加了工作日记模块(感谢ljj) 2008-09-10 人力资源管理软件做了以下改进 工资单编辑增加了 Ctrl+Home Ctrl+End Shift+Home Shift+End热键(感谢风起缘来) 代收文件输出文件增加了人数和合计金额(感谢风起缘来) 解决了部门打印出错的问题(感谢#小幺#) 2008-09-11 人力资源管理软件做了以下改进 工资报表增加了工资科目的限制条件(感谢风起缘来) 员工按辅助分组报表双击支持显示相应的员工清单(感谢风起缘来) 银行代收文件,工资金额为0的员工不再提取出来(感谢风起缘来) 小秘书的权限做了优化 2008-09-13 人力资源管理软件做了以下改进 年休标准检索条件增加职工状态,默认为在职(感谢南京-芸) 年休标准规则定义进行了优化,支持工龄细化到月(感谢南京-芸) 工资单增加备注信息(感谢风起缘来) 进入惩罚编辑界面后,公司、部门允许调整(感谢幽幽兰) 进入奖励编辑界面后,公司、部门允许调整(感谢幽幽兰) 进入培训记录编辑界面后,公司、部门允许调整(感谢幽幽兰) 优化了报表里的显示定制(感谢风起缘来) 2008-09-18 人力资源管理软件做了以下改进 导航界面的分组、按钮、右侧功能标签支持定制,每个操作员可以定义自己方便的导航方案,在导航界面上点鼠标右键弹出菜单(感谢lxp,还有很多的朋友) 工资报表的按员工分类、按时间分类、清单报表后面均增加备注和签名2列,默认隐藏(感谢风起缘来) 工资单打印,在没有勾选"含部门汇总"的情况下,工资单打印支持最后一行的"合计"(感谢baidu) 工资报按企业、部门统计的报表,增加部门人数(感谢风起缘来) 增加按籍贯省份统计员工的报表,便于分析。(感谢风起缘来) 员工资料支持指定顺序(感谢中秋月、风起缘来) 部门报表增加显示下级部门人数以及合计(感谢yeats) 公司编号支持修改,双击公司编号编辑框弹出修改界面 部门编号支持修改,双击部门编号编辑框弹出修改界面 岗编号支持修改,双击岗编号编辑框弹出修改界面 员工编号支持修改,双击员工编号编辑框弹出修改界面 请假单增加单据号(感谢冰凌儿) 加班单增加单据号(感谢冰凌儿) 2008-09-21 人力资源管理软件做了以下改进 调休单增加单据号(感谢冰凌儿) 2008-09-26 人力资源管理软件做了以下改进 增加了任务管理模块 考勤的统计台帐统计项增加了从考勤明细统计的加班数据(感谢无极星) 增加一张报表按职工类别进行统计的报表(感谢浩) 考勤班次定义做了优化(感谢魔鬼之子) 加班单增加补偿状态、支付金额(感谢sherry) 加班报表清单增加了补偿状态、支付金额、折算系数、小时数、结束时间等内容(感谢sherry) 日期提醒界面加了一个选项,是否显示离职的,默认不显示(感谢ep~ny) 2008-09-27 人力资源管理软件做了以下改进 员工基本信息中,加入招聘来源一项(感谢奇思) 增加一张员工按照招聘来源统计的报表(感谢奇思) 增加一张员工按照参加工作后工龄统计的报表(感谢奇思) 增加了一个计算器,按F7弹出(感谢麻辣花生) 2008-10-06 人力资源管理软件做了以下改进 增加了会话讨论功能,支持操作员之间在线交流(感谢武汉_花生、12711097) 增加了一个日历表(感谢麻辣花生、快乐心情、测绘经理人) 增加员工外勤管理及相关报表(感谢冰凌儿) 解决了点击定义我的工具箱报错的问题(感谢baidu) 人才卡片支持导入,管理界面的列表支持显示定制(感谢河北-班少、沧海) 增加外勤类型、加班类型等数据字典的维护(感谢冰凌儿) 2008-10-13 人力资源管理软件发布2.0版本,做了以下改进 增加了黑名单管理模块(感谢Smiling) 增加了备忘录模块 通用导入模块增加了检索功能,为批量修改数据提供方便(感谢baidu) 考勤文本格式增加了excel导入支持,类型码为D(感谢奇思) 支持安全家庭办公,通过互联网接入企业内网(感谢liuhefj) 2008-10-14 人力资源管理软件做了以下改进 年休标准自动按照2008新标准生成(感谢南京-芸、奇思) 人事管理各界面根据员工状态加以颜色区分 2008-10-23 人力资源管理软件做了以下改进 增加了车辆管理模块,包括车辆资料管理、车辆维修管理、派车管理 扩展了专业长度(感谢奇思) 检索支持组合码(感谢奇思) 其他的一些改进 2008-10-24 人力资源管理软件做了以下改进 增加了应聘人员管理模块(感谢sally,奇思) 2008-10-25 人力资源管理软件做了以下改进 解决员工更改工号之后,原来上传的文件没有同步的问题(感谢Dee) emp宿舍管理要显示出空余数量(额定-入住数)(感谢青岛HR李R) 2008-10-31 人力资源管理软件做了以下改进 互联网访问模式做了优化,支持异地内网的机器访问异地内网的服务器(无需域名或固定IP) 人事合同管理界面增加了部门和工号显示(感谢sherry) 处理了考勤班次设置为参考型时的一个漏洞(感谢奇思) 2008-11-03 人力资源管理软件做了以下改进 奖励记录增加单据号(感谢evan510) 惩罚记录增加单据号(感谢evan510) 培训清单报表增加培训内容列(感谢龙之水子) 员工编辑界面出生年月、工作日期修改后界面上的工龄和年龄立刻刷新(感谢一定要幸福) 岗名称长度加以扩展(感谢龙之水子) 工资按员工分类报表部门前面增加公司列,可通过显示定制加以显示(感谢提出意见的朋友) 工资按时间分类报表部门前面增加公司列,可通过显示定制加以显示(感谢提出意见的朋友) 工资清单级报表部门前面增加公司列,可通过显示定制加以显示(感谢提出意见的朋友) 2008-11-07 人力资源管理软件做了以下改进 解决互联网远程接入的一个漏洞(感谢风叶依旧) 解决秘书名片管理中显示定制后内容不显示的问题(感谢风) 工资按员工、时间分类报表检索条件支持职工状态(感谢龙之水子) 修正了工资报表中按分公司、按部门、按职工类别统计的人数(感谢浩) 请假单保存前根据工号和日期检查,是否已经存在该员工该日的记录(感谢奇思) 考勤报表的员工汇总表和统计数据员工汇总表检索条件增加职工类别(感谢龙之水子) 报表具体选中哪个,那个选项就有一个特别的标志(感谢霸气小女人) 日期提醒里面日生日和月生日清单均加上农历生日列(感谢天●龙) 培训清单报表增加小时数列,员工培训按方式报表增加小时数,奖励金额列名改为培训费用(感谢深海鱼) 考勤统计项支持生成按照加班类别的分项统计(感谢龙之水子) 调职增加单据号(感谢僵本) 2008-11-08 人力资源管理软件做了以下改进 调休增加小时,开始时刻(感谢奇思) 考勤台帐时中,迟到\甲退...非正常的记录用红字显示(感谢广东中山吴) 请假、加班、缺勤、外勤管理编辑界面增加:查看该日打卡记录(感谢奇思) 2008-11-12 人力资源管理软件做了以下改进 解决互联网远程接入服务程序定期不响应的问题(感谢风叶依旧) 增加了web方式修改员工密码的功能(感谢闲似鹤) 增加了web方式查询工资的功能(感谢闲似鹤) 解决了日期提醒中部分结束日期显示为农历日的问题(感谢奇思) 解决了自由导入模式生成模板文件列缩拢的问题(感谢广东中山吴) 互联网接入模式速度做了优化 2008-11-14 人力资源管理软件做了以下改进 日期提醒做了优化(感谢奇思) 工资报表增加了平均费用,可以通过显示定制显示出来(感谢浩) 工资报表增加了3张分月报表,利于做费用分析(感谢浩) 培训管理增加了培训类型(感谢龙之水子) 增加一张按照培训类型统计的报表(感谢龙之水子) 支持保险支付按公司显示(感谢rolita) 调休、外勤、请假等天数支持小数点后2(感谢奇思) 解决目录切换后助记码不生成的问题(感谢南京+周+R) 2008-11-20 人力资源管理软件做了以下改进 考勤的加班记录录入支持跨天(感谢奇思) 解决员工合同管理界面按日期检索的问题(感谢爱就像天使) web模式的员工报告增加描述信息的输出 2008-12-01 人力资源管理软件发布2.1版本,做了以下改进 计件工资增加了价格管理模块,增强了工资计价的灵活性(感谢Snander、baidu) 优化了对部门重名的处理(感谢维色卓玛) 优化了对员工重名的处理(感谢维色卓玛) 互联网模式内网接入做了优化 保险标准管理界面姓名前面显示 公司、部门、工号,支持显示定制 其他的一些优化(感谢提出意见的朋友们) 2008-12-03 人力资源管理软件做了以下改进 增加切换操作员的功能(感谢francesca) 解决员工管理和岗异动显示定制互相干扰的问题(感谢一棵黄桷树) 请假、出差、加班、调休、缺勤、外勤管理窗口支持显示定制(感谢奇思北京hr刁R) 增加了人资数据字典维护窗口 2008-12-07 人力资源管理软件做了以下改进 计件工资管理窗口增加了重新计价的功能(感谢baidu) 工资单增加了岗、银行帐户、职工类别等内容,默认隐藏,可以通过显示定制显示出来(感谢 想家) 工资单打印参数增加了岗、银行帐户、职工类别等内容,可以通过修改模板加以打印(感谢 想家) 2008-12-12 人力资源管理软件做了以下改进 增加制作工卡的打印(感谢szcz) 岗增加了描述信息(感谢风叶依旧) 解决职工类别为空导致工资按职工类别汇总统计出错的问题(感谢想家) 员工资料增加了最高学(感谢上海-kevin、奇思) 合同管理里面的合同编号支持修改(感谢梦里水中游) 优化了当年入职员工的年休假计算(感谢奇思北京hr刁R) 小秘书权限控制做了优化(感谢谭伟) 员工资料用户自定义增加到8个 其他的一些优化 2008-12-18 人力资源管理软件做了以下改进 增加按最高学统计的报表(感谢奇思北京hr刁R) 员工年休假管理做了优化(感谢奇思、小石头) 调休记录区分年假调休和加班调休(感谢小石头) 解决考核模块中累计分管理里面日期只显示年和月的问题(感谢冰凌儿) 解决按照员工检索领用物品的问题(感谢一棵黄桷树) 解决按照驾驶员条件检索车辆使用记录(感谢奇思北京hr刁R) 招聘人员卡片增加期望薪水(感谢奇思北京hr刁R) 自定义分组增加批量添加员工功能(感谢zhuyijun) 合同模板制作里面支持引用员工资料(感谢goddness001) 物品进出记录编辑增加复制新增功能 (感谢一叶舟) 员工管理界面中对定义为日期型的扩展字段显示加以优化(感谢Danny) 优化扩展定义统计、查询模块(感谢奇思) 2008-12-24 人力资源管理软件做了以下改进 增加了费用管理模块(感谢奇思北京hr刁R) 打印做了优化,支持折行(感谢健,天剑) 报表输出支持保存为wps的表格文件(感谢好想▄好想) 工资科目和套餐里去掉了默认值 其他的一些优化 2008-12-28 人力资源管理软件做了以下改进 调休记录增加了年度标识(感谢冰凌儿) 调休报表做了优化(感谢冰凌儿) 年休标准管理界面要支持显示定制 应聘人员管理支持自定义查询功能(感谢奇思) 日常费用管理支持导入(感谢奇思) 应聘人员管理 中 增加 信息来源 检索项目(感谢奇思) 打印模板设计做了优化,支持取消上一操作功能 2009-01-04 人力资源管理软件做了以下改进 惩罚管理做了优化(感谢霸气小女人) 扩展了培训记录的标题长度 (感谢mobby) 解决了考勤补卡没有更新员工资料的问题(奇思) 解决新增操作员后在操作员关系中未刷新列表的问题(一棵黄桷树) 物品进出记录管理中增加显示物品金额,支持显示定制(鱼 儿) 调休统计表里增加了年度列和条件(冰凌儿) 应聘人员录入增强了人员重复的检查(奇思) 惩罚记录的原因描述长度做了扩展(感谢zhuyijun) 其他的一些优化 2009-01-16 人力资源管理软件做了以下改进 调休管理同时支持国家标准和企业标准(感谢冰凌儿,唐艺铭) 增加了企业文档管理 (感谢shenlan666800,涂糊得难) 应聘人员的籍贯长度进行了扩展(虾米东东) 考勤月台帐支持统计各类班次的数量(感谢龙之水子,shishiruyan) 报表打印模块做了优化,支持套打和固定行数(感谢不再犹豫) 工资、考勤部分报表条件做了优化 其他的一些优化 2009-01-20 人力资源管理软件做了以下改进 考勤日台帐增加了上下班时刻的单独列(默认是隐藏的,可通过显示定制显示出来)(感谢plokmxv) 其他的一些优化 2009-01-22 人力资源管理软件做了以下改进 工资单增加直接从excel导入功能(感谢浮尘) 保险支付选择标准界面增加了是否包含离职人员的选项(水至纯) 照片的大小限制放大到3M(感谢lygwk) 2009-02-05 人力资源管理软件做了以下改进 解决多个常规任务计划不能全部加载的问题(感谢奇思) 解决导入资料拓展属性不能超过4个的问题(感谢把风甩开) 2009-02-07 人力资源管理软件做了以下改进 报表打印支持模板设计 列表打印做了优化 导入模块做了优化(感谢奇思) 人事合同管理需要支持导入的功能(感谢嗨納佰〣) 其他的一些改进 2009-02-10 人力资源管理软件做了以下改进 解决工资单录入无法输入备注信息的问题(感谢冰凌儿) 自定义条件数据提取的优化(奇思) 2009-02-20 人力资源管理软件做了以下改进 奖励管理增加处理方式(感谢fushuwei) 惩罚管理增加处理方式(感谢fushuwei) 合同管理增加合同年限内容(感谢abcd7006 ) 解决了人事合同扩展信息信息覆盖的问题(感谢mobby) 奖励和惩罚 管理界面,增加'显示定制'功能 员工证件 管理界面增加导入功能 优化了车辆卡片管理模块 论坛页面的友情链接支持定制 2009-02-21 人力资源管理软件做了以下改进 人事异动报表增加一张员工变动汇总表(感谢fushuwei) 计划管理按照上下级管理,上级可以调取下级的相关计划(感谢房) 2009-02-23 人力资源管理软件做了以下改进 人才卡片的编辑做了优化(感谢奇思) 工资查询模块的清单列表中显示工资单录入中的备注信息,支持模糊查询(感谢冰凌儿) 人才卡片、应聘资料、员工资料支持复制员工信息和黏贴信息(感谢浙江豪宇) 优化限定企业的处理(感谢风) 考勤支持通过web输入工号和密码打卡(感谢simonzhan) 其他的一些优化(感谢zwd) 2009-02-26 人力资源管理软件做了以下改进 优化了打印输出到excel文件的处理(感谢meteor) 优化了调休标准的导出(感谢电力) 优化了保险支付数据的导出(感谢no name) 员工技能支持导入(感谢lzb700) 其他做了一些改进(感谢精棉棉业、董荟) 2009-03-03 人力资源管理软件做了以下改进 优化了应聘人员管理编辑界面(感谢奇思) 其他做了一些改进(感谢ssp苏) 2009-03-05 人力资源管理软件做了以下改进 增加一张按照部门统计物品使用报表(感谢zwd) 工序价格管理检索条件支持按订单搜索(感谢小虫) 打印部门清单进行了优化(感谢中國通關) 日期提醒增加一个退休提醒(感谢雨心) 保险支付选择支付标准记录支持过滤停用和失效的记录(感谢西安_HR_雪虫) 优化了报表按照模板打印,解决了部分报表打印不准的问题(感谢风) 企业工龄标准要支持年龄规则(感谢小石头) 2009-03-10 人力资源管理软件做了以下改进 证件管理支持复检以及相应的提醒(感谢心中的世界) 考勤记录支持通用型导入 员工资料编辑界面的合同终止和试用期终止标签点击支持弹出菜单,自动根据期限设置结束日期(感谢噯祢méi緔靓) 培训记录管理做了优化(感谢tl2222 ) 优化了生成合同文件的处理(感谢中國通關) 2009-03-19 人力资源管理软件做了以下改进 员工资料的描述属性扩展到支持30(感谢奇思) 员工资料、合同管理、应聘人员等支持批量删除(感谢中國通關) 2009-03-26 人力资源管理软件做了以下改进 解决员工保险四舍五入误差一分的问题(感谢僵本) 解决员工分组报错的问题(感谢奇思) 列表打印做了优化,处理打印行高问题 解决服务端软件自动备份和人工备份可能不一致的问题(感谢清凉寺的钟声) 员工管理功能菜单下增加一个根据身份证设置性别、生日、籍贯等信息的功能 照片区域处理做了优化(感谢云海、kevin zhang) 宿舍性别数据字典支持自定义(感谢云海) 计件工资录入增加了是否显示离职人员的选项(感谢张锦华) 2009-04-01 人力资源管理软件做了以下改进 模板打印和列表打印做了优化(感谢jztsky) 工号编码自动生成做了优化(感谢狼仔、笑看人生) 模板打印的图片打印进行了优化(感谢魔羯) 证件管理编辑界面做了优化(感清风) 应聘人员信息增加了创建人和日期内容(感浮尘、累哦) 解决了文档管理上传文件重名的问题(感谢累哦 休息) 模板设计做了优化 列表打印增加了序号选项 其他的一些优化 2009-04-03 人力资源管理软件做了以下改进 补卡发卡支持批量导入功能(感谢mobby) 工号编码自动生成做了优化(感谢笑看人生) 人事资料的相关报表要支持父部门限制 考勤的相关报表要支持父部门限制 工资的相关报表要支持父部门限制 工资单编辑界面做了优化,支持清除列(感谢亮亮) 累积分管理做了优化 其他的一些优化(感谢梦重楼) 2009-04-11 人力资源管理软件做了以下改进 工资单据多针对多公司选择标准做了优化(感谢KEN) 生成新增员工编号做了优化(感谢一叶舟) 解决无法删除名片的问题(感谢奇思) 支持应聘人员卡片打印(感谢59医院) 员工调岗调职管理界面上需要增加对员工状态的条件支持(感谢一棵黄桷树) 员工福利管理界面列表增加显示费用列(感谢淡彩浓墨) 单据打印界面里面保存到excel做了优化(感谢metor) 部分权限控制做了优化(感谢mobby) 其他的一些优化 2009-04-15 人力资源管理软件发布2.2版本,做了以下改进 工资单支持发送邮件到员工邮箱(感谢碧蓝) 考勤台帐处理自动合并入外勤数据(感谢mobby) 考勤班次增加提前是否计时和延后是否计时选项(感谢云海) 考勤基本参数增加加班取整方式选项(感谢云海) 2009-04-20 人力资源管理软件做了以下改进 浏览器访问导航界面做了优化(感谢cch) 2009-04-22 人力资源管理软件做了以下改进 考勤月帐增加了对打卡加班+班次类型统计的支持(感谢云海) 考勤日台帐增加了备注(感谢mobby) 外勤数据处理做了优化(感谢mobby) 其他做了一些优化 2009-04-24 人力资源管理软件做了以下改进 对于周末加班处理做了优化(感谢云海) 不打卡的员工生成缺勤记录 增加了退休状态H和退休异动类型H(感谢cqswah) 其他做了一些优化 2009-05-04 人力资源管理软件做了以下改进 培训记录编辑做了优化,增加了培训效果项目(感谢kdc218) 员工编辑加强了对身份证号码合法性的检查(感谢wang214,不错) WEB报表做了一些优化 其他的一些改进(感谢 悠悠) 2009-05-06 人力资源管理软件做了以下改进 证照管理的检索条件做了扩展(感谢Tony) 工资套餐的处理做了优化(感谢幸福ing) 考勤日台帐支持删除和批量删除 增加获取税率函数(感谢幸福ing) 员工管理界面支持列的拖拉(感谢金平) 考勤处理不再自动生成离职部分员工的缺勤 工资单编辑做了一些优化 其他的一些改进(感谢 奇思,wang214) 2009-05-07 人力资源管理软件做了以下改进 考勤按天排班支持批量导入(感谢webzheng) 日期提醒做了扩展,增加了一些提醒,生日提醒做了优化,支持按月日排序(感谢累哦 休息、见习爱神ヅ) 员工管理支持按照打印模板打印 报表界面支持列的拖拉(感谢金平) 2009-05-10 人力资源管理软件做了以下改进 调岗调职记录支持导入(哈尔滨HR吴) 考勤按天排班记录单独存放,和台帐区分开来(感谢亮亮,webzheng) 考勤月台帐的显示做了优化(感谢云海) 2009-05-15 人力资源管理软件做了以下改进 工资复制员工计件工资检索记录支持指定开始日期和结束日期提取(感谢小虫) 员工资料管理界面的限制条件增加了年龄段、工龄段、司龄段(感谢wang214) 工资复制工资标准、考勤台帐增加了限制员工、科目的选项(感谢云海) 其他的一些优化 2009-05-21 人力资源管理软件做了以下改进 请假、调休、缺勤、加班、出差、外勤的清单报表里增加了部门列(感谢[HR]59医院) 从excel引入工资数据(工资单里的功能)增加了过滤选项(感谢呆头鹅) 小秘书的工作日志支持导出到word文档(感谢心兰若宇) 其他的一些改进(感谢云海、看!) 如有升级后秘书功能打不开的请重新下载下 2009-05-26 人力资源管理软件做了以下改进 考勤排班做了优化(感谢webzheng) 增加了车辆费用管理(感谢清风、杜鹃) 其他的一些改进(感谢云海、看!) 2009-05-31 人力资源管理软件做了以下改进 职工保险标准的清单报表增加"性别" "出生年日" "入职时间" "身份证号码" 等列(感谢59医院) 工资清单级报表(004)增加工资类别、部门岗、政治面貌、技术职称、职工类别、文化程度等内容,便于二次图形分析(感谢maple) 解决了批量导入排班出错的问题(感谢一滴水) 其他的一些优化 2009-06-01 人力资源管理软件做了以下改进 人事资料弹出式选择员工后自动设置公司、部门做了优化 考勤管理弹出式选择员工后自动设置公司、部门做了优化 解决了0531升级中的2个问题(感谢奇思、云海) 2009-06-03 人力资源管理软件做了以下改进 添加一张工资标准的统计报表(感谢广东红日星) 添加一张家庭成员管理(感谢神话ヅ) 应聘人员增加期望薪水下限,下次面试日期和时刻,并且要支持面试日期检索(感谢奇思) 其他的一些改进(感谢钢铁汉子、聊聊天、云海等提出意见的朋友) 2009-06-05 人力资源管理软件做了以下改进 考勤打卡的后台处理做了优化(感谢亮亮) 考勤增加了后台处理是否自动更新请假时长的参数(感谢亮亮) 增加一张人事合同清单报表(感谢缘分天空) 人事合同管理界面需要增加职工状态选项,默认设置为在职(感谢Helina) 办公物品定义支持导入 工资公式里面增加工龄天数变量(感谢圣士、雨) 其他的一些改进(感谢云海等提出意见的朋友) 2009-06-10 人力资源管理软件做了以下改进 优化了工资编辑里面的个税计算处理(感谢leekq) 优化了网络模式下员工管理的显示(感谢将军) 家庭成员管理做了优化(感谢(立京、奇思)) 其他的一些改进 2009-06-16 人力资源管理软件发布2.3版本,做了以下改进 增加了单独工作经历管理(感谢奇思) 宿舍入住增加了床信息(感谢冰海雪源) 名片分组支持上下级(感谢五谷子) 增加了单独学习经历管理(感谢奇思) 培训管理增加约定服务期限(感谢奇思) 其他的一些改进(感谢一叶舟、立京等提出意见的朋友们) 2009-06-18 人力资源管理软件做了以下改进 增加了对外培训管理模块(感谢奇思) 员工资料界面做了优化(感谢八王爷) 学习经历和工作经历支持导入(感谢奇思) 其他的一些改进(感谢提出意见的朋友们) 2009-06-23 人力资源管理软件做了以下改进 考核界面在完成列双击的时候自动切换完成是否的标志(感谢云南-郝智文) 从累积分导入到考核界面需要改进(感谢云南-郝智文) 请假管理界面要显示单据号(感谢皆慧) 考勤台帐右键要支持显示该天打卡记录,可参考请假管理的右键(感谢苏州-人事) 日期提醒里面 ,加入"该日面试人员"提醒(感谢奇思) 日期提醒增加"该月复检证件"日期提醒(感谢Helina) 学习经历扩展了项目(感谢lightness、奇思) 外培训服务扩展了项目并支持导入(感谢奇思) 2009-06-28 人力资源管理软件做了以下改进 支持根据应聘人员的信息创建员工 解决工资单普通操作员不允许定制套餐的问题(感谢亮亮) 解决对外培训不能导入的问题(感谢奇思) 显示某日打卡记录做了优化(感谢苏州-hxcsd ) 员工资料支持批量移动(感谢hughes6688) 考勤处理做了优化(感谢hxcsd) 其他的一些改进(感谢提出意见的朋友们) 2009-07-02 人力资源管理软件做了以下改进 支持通过onlyit服务器进行浏览器访问,无需动态域名和固定IP(见web设置) 背景图支持自定义(放个background.bmp图片到执行目录即可)(感谢keenrob) 员工福利支持倒入(感谢安安) 应聘人员增加体检结果和报到日期(感谢苏州-人事) 考勤处理做了改进(感谢℡擱㊣淺 囧?) 员工报告做了优化(感谢累哦 休息) 员工卡片中增加更多的浏览信息(感谢累哦 休息) 其他的一些优化 2009-07-07 人力资源管理软件做了以下改进 解决了文档资料记录无附件不允许删除的问题(感谢奇思) 解决员工惩罚记录无法按照工号检索的问题(感谢hxcsd) 员工卡片附加信息增加了培训记录(感谢hxcsd) 优化了物品定义的权限控制(感谢小鸭) 对外培训 检索 下面"提示信息"显示记录数(感谢奇思) 解决员工卡片中学习经历的关联问题(琦遇) 其他的一些优化 2009-07-26 人力资源管理软件做了以下改进 信息编辑界面的标签支持用户定制,可通过双击标签弹出修改 增加了人力资源综合报告模块(感谢方方) 其他的一些优化 2009-07-31 人力资源管理软件做了以下改进 员工技能增加证书编号(感谢老叮当) 工资代收文件增加身份证号(感谢王大丫) 招聘人员增加是否需要宿舍、能力程度(感谢苏州-hxcsd) 其他的一些优化(感谢琦遇、灵~~~~) 2009-08-15 人力资源管理软件做了以下改进 解决员工管理无法按照工龄检索的问题(感谢萤火虫) 员工福利管理列表需要显示部门及工号(感谢天天) web报表做了优化 秘书功能web模块做了优化 其他的一些改进(感谢tony) 2009-08-24 人力资源管理软件做了以下改进 员工报表支持自定义统计分析 年龄统计的年龄段支持自定义 其他的一些优化改进 2009-08-26 人力资源管理软件做了以下改进 web报表做了优化 其他的一些优化改进(感谢感生、琦遇) 2009-09-07 人力资源管理软件做了以下改进 工资报表支持自定义统计分析 岗异动管理做了改进(感谢老叮当) 支持按照导入格式导出文件 其他的一些优化改进(感谢山寨大王和其他提出意见的朋友) 2009-09-10 人力资源管理软件做了以下改进 员工相关文件(如照片)支持批量导入 物品管理选择物品要支持弹出式选择(感谢京城淡淡彩) 日常费用增加了单据编号。(感谢浙C.1*326) 车辆卡片增加了外租费用(感谢缝缝衣服) 输入重复的员工卡号时弹出提示(感谢sally) 宿舍入住记录支持历史记录 其他的一些优化改进(感谢零件制造-宁静、HR奇思-刁-R、哈尔滨HR吴、 小树丫、榨油机-onlyit和其他提出意见的朋友) 2009-09-15 人力资源管理软件做了以下改进 工资科目小数点最多支持到4(感谢亮亮) 培训管理列表和导入做了优化(感谢HR奇思-刁-R) 2009-09-20 人力资源管理软件做了以下改进 技能管理做了优化(感谢三亚-小七) 支持针对部门指定班次,便于按天排班方便 其他的一些优化改进(感谢HR奇思-刁-R) 2009-09-24 人力资源管理软件做了以下改进 增加了绩效考核二次分析数据基础 增加了考勤二次分析数据基础 工资要支持导入罚款、奖励金额(感谢布依风情) 宿舍管理做了优化(感谢乱了心扉) 其他的一些优化改进(感谢Tony、冰凌儿、HR奇思-刁-R、simon0913、亮亮) 2009-09-27 人力资源管理软件发布2.5版本,做了以下改进 车辆管理的维修、使用增加了里程数 计件工资的工序和工资定义支持导入。(感谢dragonfly) 其他的一些改进(感谢亮亮) 2009-09-29 人力资源管理软件做了以下改进 改进了宿舍报表(感谢京城淡淡彩) 工资单支持短信发送(感谢彭伟) 其他的一些改进(感谢亮亮) 2009-10-10 人力资源管理软件做了以下改进 增加了窗口快速切换功能(需要激活) 增加停工放假记录管理(感谢亮亮) 考勤月台帐科目最多支持到小数后4(感谢亮亮) 人力资源的工序编号扩展到8(感谢dragonfly) 数据分析的分类限定采用弹出式选择方式(感谢传递) 增加了用推广积分激活增强功能模块 其他的一些改进 2009-10-13 人力资源管理软件做了以下改进 外勤和停工放假支持自由式导入 宿舍入住员工清单中显示部门(感谢京城淡淡彩)。 考勤月台帐计算规则处理做了优化(感谢亮亮) 其他的一些改进(感谢奇思) 2009-10-14 人力资源管理软件做了以下改进 支持生成工资短信文件(感谢彭伟) 其他的一些改进 2009-10-21 人力资源管理软件做了以下改进 合同管理做了优化(感谢西部苍凉月、絕舞狂魅、妖) 网络模式下服务端增加压缩数据库功能(感谢francesca) 支持其他的一些改进 2009-10-28 人力资源管理软件做了以下改进 小秘书模块做了优化 合同管理的备注内容做了扩展(感谢絕舞狂魅、妖) 其他的一些改进(感谢 lyan) 2009-10-30 人力资源管理软件做了以下改进 支持秘书管理模式,迷人风格,值得拥有。(需要激活) 修正要求修改密码的问题(感谢summer) 报表展示做了优化(感谢传递) 小秘书模块更新到1.7版本,小秘书更为方便 其他的一些改进 2009-11-04 人力资源管理软件做了以下改进 小秘书增加了办公流程管理模块 中控考勤支持串口采集(把IP改为空,设置端口、速率、机器号即可)(感谢欣格格、华汉网络) 工资公式计算做了优化(感谢亮亮) 秘书管理模式支持窗口菜单(感谢传递) 其他的一些改进(感谢你也来、SMRW) 2009-11-10 人力资源管理软件做了以下改进 支持互联网模式的网站访问、消息交流 其他的一些改进 2009-11-11 人力资源管理软件做了以下改进 发布任务的时候自动进行消息通知 处理了工作日志不允许编辑的问题(感谢奇思、Richet) 其他的一些改进 2009-11-16 人力资源管理软件发布2.6版本,做了以下改进 支持导航界面上显示本企业名称。(需要激活) 物品管理增加了单信息。(感谢安安-onlyit爱好、霸气花妖) 针对初学者增加了学习导航功能 合同管理支持批量删除界面上记录 其他的一些改进(感谢西部苍凉月) 2009-11-24 人力资源管理软件做了以下改进 检查证件缺失的界面显示出职工状态、所在部门和岗(感谢ぷ大坏蛋ぷ) 小秘书的工作日志做了改进 其他的一些改进(感谢传递、奇思、晒干脱皮的虾) 2009-12-01 人力资源管理软件做了以下改进 员工资料管理的字典检索条件支持多选 员工资料管理员工列表支持锁定列操作(感谢不错) 考勤数据采集增加了对多时间列表格文件导入的支持 工资分析的检索条件进行了扩展(感谢不错) 其他的一些改进(感谢francesca、阿男) 2009-12-09 人力资源管理软件做了以下改进 员工管理界面的检索条件增加日期检索,包括 入职起始、入职结束,参加工作起始结束,离职起始结束时间段 增加了锁定系统的功能(感谢传递) 增加员工资料修改日志记录(感谢西部苍凉月) 计算个税做了优化(感谢海权) 选择员工界面的检索里面部分支持复合选择(感谢Danny) 其他的一些改进(感谢西部苍凉月、低调做人) 2009-12-15 人力资源管理软件做了以下改进(编译日期12-15,数据库版本12-09) 员工管理界面列表中的支持月本司工龄,年本司工龄、月工作工龄,年工作工龄(感谢zlcmmm) 其他的一些改进(感谢leo532) 2009-12-30 人力资源管理软件做了以下改进 工资标准支持从excel导入建立(感谢aze2001) 车辆使用记录管理增加生成默认车辆使用凭条和设计使用凭条打印模板功能。使用记录卡片编辑界面要支持按照使用凭条模板打印。(感谢huinan) 宿舍管理检索条件增加入住员工(感谢huinan) 学习经历管理做了优化(感谢奇思) 合同管理功能菜单下增加 提取日期已经逾期但未失效的记录 以及 将界面上已逾期但未失效的设置为失效状态的功能 其他的一些改进 2010-01-04 人力资源管理软件做了以下改进 备忘录做了优化(感谢奇思) 增加了根据自定义模板生成报表的模块(用法见dll下人力资源自定义统计报告模板.xls)。(需要激活) 常规任务管理做了优化(感谢奇思) 锁定状态下屏蔽小秘书自动提醒事务弹出(感谢奇思) 支持ctrl+F2热键锁定系统(感谢传递) 小秘书支持自动靠边隐藏停靠(感谢Yin#Live) 其他的一些改进 2010-01-09 人力资源管理软件做了以下改进 社会关系增加了部门、岗、状态信息(感谢奇思) 合同编辑界面选择员工后在界面上显示出该员工签订的合同记录次数和最后一次的时间 员工管理功能菜单下增加 提取试用期已过但仍为试用状态的记录 以及 将界面上试用期已过但仍为试用状态的设置为合同期 的功能 人才卡片管理做了改进(感谢西部苍凉月) 派车管理显示做
一、校验数字的表达式 1 数字:^[0-9]*$ 2 n的数字:^\d{n}$ 3 至少n的数字:^\d{n,}$ 4 m-n的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 9 有两小数的正实数:^[0-9]+(.[0-9]{2})?$10 有1~3小数的正实数:^[0-9]+(.[0-9]{1,3})?$11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$13 非负整数:^\d+$ 或 ^[1-9]\d*|0$14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$17 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$18 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$19 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ 二、校验字符的表达式 1 汉字:^[\u4e00-\u9fa5]{0,}$ 2 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$ 3 长度为3-20的所有字符:^.{3,20}$ 4 由26个英文字母组成的字符串:^[A-Za-z]+$ 5 由26个大写英文字母组成的字符串:^[A-Z]+$ 6 由26个小写英文字母组成的字符串:^[a-z]+$ 7 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 8 由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$ 9 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$10 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$11 可以输入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+12 禁止输入含有~的字符:[^~\x22]+ 三、特殊需求表达式 1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.? 3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ 4 手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$ 5 电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$ 6 国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7} 7 身份证号(15、18数字):^\d{15}|\d{18}$ 8 短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$ 9 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$10 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$11 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 12 日期格式:^\d{4}-\d{1,2}-\d{1,2}13 一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$14 一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$ 15 钱的输入格式:16 1.有四种钱的表示形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$ 17 2.这表示任意一个不以0开头的数字,但是,这也意味着一个字符"0"不通过,所以我们采用下面的形式:^(0|[1-9][0-9]*)$ 18 3.一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号:^(0|-?[1-9][0-9]*)$ 19 4.这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下面我们要加的是说明可能的小数部分:^[0-9]+(.[0-9]+)?$ 20 5.必须说明的是,小数点后面至少应该有1数,所以"10."是不通过的,但是 "10" 和 "10.2" 是通过的:^[0-9]+(.[0-9]{2})?$ 21 6.这样我们规定小数点后面必须有两,如果你认为太苛刻了,可以这样:^[0-9]+(.[0-9]{1,2})?$ 22 7.这样就允许用户只写一小数.下面我们该考虑数字中的逗号了,我们可以这样:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$ 23 8.1到3个数字,后面跟着任意个 逗号+3个数字,逗号成为可选,而不是必须:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$ 24 备注:这就是最终结果了,别忘了"+"可以用"*"替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在用函数时去掉去掉那个反斜杠,一般的错误都在这里25 xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$26 中文字符的正则表达式:[\u4e00-\u9fa5]27 双字节字符:[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))28 空白行的正则表达式:\n\s*\r (可以用来删除空白行)29 HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力)30 首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)31 腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)32 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6数字)33 IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有用)
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。 ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a" $ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A" * 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa + 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa ? 匹配前面元字符0次或1次,/ba*/将匹配b,ba (x) 匹配x保存x在名为$1...$9的变量中 x|y 匹配x或y {n} 精确匹配n次 {n,} 匹配n次以上 {n,m} 匹配n-m次 [xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符) [^xyz] 不匹配这个集合中的任何一个字符 [\b] 匹配一个退格符 \b 匹配一个单词的边界 \B 匹配一个单词的非边界 \cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M \d 匹配一个字数字符,/\d/ = /[0-9]/ \D 匹配一个非字数字符,/\D/ = /[^0-9]/ \n 匹配一个换行符 \r 匹配一个回车符 \s 匹配一个空白字符,包括\n,\r,\f,\t,\v等 \S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/ \t 匹配一个制表符 \v 匹配一个重直制表符 \w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9] \W 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。 用re = new RegExp("pattern",["flags"]) 的方式比较好 pattern : 正则表达式 flags: g (全文查找出现的所有 pattern) i (忽略大小写) m (多行查找) vaScript动态正则表达式问题 请问正则表达式可以动态生成吗? 例如JavaScript中: var str = "strTemp"; 要生成: var re = /strTemp/; 如果是字符连接: var re = "/" + str + "/"即可 但是要生成表达式,可以实现吗?怎样实现? [JAVA] javascript 正则表达式 秋雨叶 发表于 2004-12-9 14:54:13 正则表达式是一个描述字符模式的对象。 JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp对象, 也可以用JavaScript 1.2中的新添加的一个特殊语法来创建RegExp对象.就像字符串直接量被定义为包含在引号内的字符一样, 正则表达式直接量也被定义为包含在一对斜杠(/)之间的字符.所以,JavaScript可能会包含如下的代码: var pattern = /s$/; 这行代码创建一个新的RegExp对象,并将它赋给变量parttern.这个特殊的RegExp对象和所有以字母"s"结尾的字符串都匹配.用RegExp()也可以定义 一个等价的正则表达式,代码如下: var pattern = new RegExp("s$"); 无论是用正则表达式直接量还是用构造函数RegExp(),创建一个RegExp对象都是比较容易的.较为困难的任务是用正则表达式语法来描述字符的模式. JavaScript采用的是Perl语言正则表达式语法的一个相当完整的子集. 正则表达式的模式规范是由一系列字符构成的.大多数字符(包括所有字母数字字符)描述的都是按照字面意思进行匹配的字符.这样说来,正则表达式/java/就和 所有包含子串 "java" 的字符串相匹配.虽然正则表达式中的其它字符不是按照字面意思进行匹配的,但它们都具有特殊的意义.正则表达式 /s$/ 包含两个字符. 第一个特殊字符 "s" 是按照字面意思与自身相匹配.第二个字符 "$" 是一个特殊字符,它所匹配的是字符串的结尾.所以正则表达式 /s$/ 匹配的就是以字母 "s" 结尾 的字符串. 1.直接量字符 我们已经发现了,在正则表达式中所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript的正则表达式还通过以反斜杠(\)开头的转义序列支持某些非 字母字符.例如,序列 "\n" 在字符串中匹配的是一个直接量换行符.在正则表达式中,许多标点符号都有特殊的含义.下面是这些字符和它们的含义: 正则表达式的直接量字符 字符 匹配 ________________________________ 字母数字字符 自身 \ f 换页符 \ n 换行符 \ r 回车 \ t 制表符 \ v 垂直制表符 \ / 一个 / 直接量 \ \ 一个 \ 直接量 \ . 一个 . 直接量 \ * 一个 * 直接量 \ + 一个 + 直接量 \ ? 一个 ? 直接量 \ | 一个 | 直接量 \ ( 一个 ( 直接量 \ ) 一个 ) 直接量 \ [ 一个 [ 直接量 \ ] 一个 ] 直接量 \ { 一个 { 直接量 \ } 一个 } 直接量 \ XXX 由十进制数 XXX 指 定的ASCII码字符 \ Xnn 由十六进制数 nn 指定的ASCII码字符 \ cX 控制字符^X. 例如, \cI等价于 \t, \cJ等价于 \n ___________________________________________________ 如果想在正则表达式中使用特殊的标点符号,必须在它们之前加上一个 "\" . 2.字符类 将单独的直接符放进中括号内就可以组合成字符类.一个字符类和它所包含的任何一个字符都匹配,所以正则表达式 / [abc] / 和字母 "a" , "b" , "c" 中的任何一个 都匹配.另外还可以定义否定字符类,这些类匹配的是除那些包含在中括号之内的字符外的所有字符.定义否定字符尖时,要将一个 ^ 符号作为从左中括号算起的第 一个字符.正则表达式的集合是 / [a-zA-z0-9] / . 由于某些字符类非常常用,所以JavaScript的正则表达式语法包含一些特殊字符和转义序列来表示这些常用的类.例如, \s 匹配的是空格符,制表符和其它空白符, \s 匹配的则是空白符之外的任何字符. 正则表灰式的字符类 字符 匹配 ____________________________________________________ [...] 于括号之内的任意字符 [^...] 不在括号之中的任意字符 . 除了换行符之外的任意字符,等价于[^\n] \w 任何单字字符, 等价于[a-zA-Z0-9] \W 任何非单字字符,等价于[^a-zA-Z0-9] \s 任何空白符,等价于[\ t \ n \ r \ f \ v] \S 任何非空白符,等价于[^\ t \ n \ r \ f \ v] \d 任何数字,等价于[0-9] \D 除了数字之外的任何字符,等价于[^0-9] [\b] 一个退格直接量(特例) ________________________________________________________________ 3.复制 用以上的正则表式的语法,可以把两数描述成 / \ d \ d /,把四位数描述成 / \d \ d \ d \ d /.但我们还没有一种方法可以用来描述具有任意多数的数字或者是一个 字符串.这个串由三个字符以及跟随在字母之后的一数字构成.这些复杂的模式使用的正则表达式语法指定了该表达式中每个元素要重复出现的次数. 指定复制的字符总是出现在它们所作用的模式后面.由于某种复制类型相当常用.所以有一些特殊的字符专门用于表示它们.例如: +号匹配的就是复制前一模式一次 或多次的模式.下面的表列出了复制语法.先看一个例子: /\d{2, 4}/ //匹配2到4间的数字. /\w{3} \d?/ //匹配三个单字字符和一个任意的数字. /\s+java\s+/ //匹配字符串"java" ,并且该串前后可以有一个或多个空格. /[^"] * / //匹配零个或多个非引号字符. 正则表达式的复制字符 字符 含义 __________________________________________________________________ {n, m} 匹配前一项至少n次,但是不能超过m次 {n, } 匹配前一项n次,或者多次 {n} 匹配前一项恰好n次 ? 匹配前一项0次或1次,也就是说前一项是可选的. 等价于 {0, 1} + 匹配前一项1次或多次,等价于{1,} * 匹配前一项0次或多次.等价于{0,} ___________________________________________________________________ 4.选择,分组和引用 正则表达式的语法还包括指定选择项,对子表达式分组和引用前一子表达式的特殊字符.字符| 用于分隔供选择的字符.例如: /ab|cd|ef/ 匹配的是字符串 "ab",或者是 字符串 "cd",又或者 "ef". /\d{3}|[a-z]{4}/ 匹配的是要么是一个三数,要么是四个小写字母.在正则表达式中括号具有几种作用.它的主要作用是把单独的项目分组 成子表达式,以便可以像处理一个独立的单元那种用 *、+或? 来处理那些项目.例如: /java(script) ?/ 匹配的是字符串 "java",其后既可以有 "script",也可以没有. / (ab|cd) + |ef) / 匹配的既可以是字符串 "ef",也可以是字符串"ab" 或者 "cd" 的一次或多次重复. 在正则表达式中,括号的第二个用途是在完整的模式中定义子模式。当一个正则表达式成功地和目标字符串相匹配时,可以从目标串中抽出和括号中的子模式相匹配 的部分.例如,假定我们正在检索的模式是一个或多个字母后面跟随一或多数字,那么我们可以使用模式 / [a-z] + \ d+/.但是由于假定我们真正关心的是每个匹配 尾部的数字,那么如果我们将模式的数字部分放在括号中 (/ [a-z] + (\d+)/) ,我们就可以从所检索到的任何匹配中抽取数字了,之后我们会对此进行解析的. 代括号的子表达式的另一个用途是,允许我们在同一正则表达式的后面引用前面的子表达式.这是通过在字符串 \ 后加一或多数字来实现的.数字指的是代括号的 子表达式在正则表达式中的置.例如: \1 引用的是第一个代括号的子表达式. \3 引用的是第三个代括号的子表达式.注意,由于子表达式可以嵌套在其它子表达式中, 所以它的置是被计数的左括号的置. 例如:在下面的正则表达式被指定为 \2: /([Jj]ava([Ss]cript)) \sis \s (fun\w*) / 对正则表达式中前一子表达式的引用所指定的并不是那个子表达式的模式,而是与那个模式相匹配的文本.这样,引用就不只是帮助你输入正则表达式的重复部分的快 捷方式了,它还实施了一条规约,那就是一个字符串各个分离的部分包含的是完全相同的字符.例如:下面的正则表达式匹配的就是于单引号或双引号之内的所有字 符.但是,它要求开始和结束的引号匹配(例如两个都是双引号或者都是单引号): /[' "] [^ ' "]*[' "]/ 如果要求开始和结束的引号匹配,我们可以使用如下的引用: /( [' "] ) [^ ' "] * \1/ \1匹配的是第一个代括号的子表达式所匹配的模式.在这个例子中,它实施了一种规约,那就是开始的引号必须和结束的引号相匹配.注意,如果反斜杠后跟随的数字比 代括号的子表达式数多,那么它就会被解析为一个十进制的转义序列,而不是一个引用.你可以坚持使用完整的三个字符来表示转义序列,这们就可以避免混淆了.例如, 使用 \044,而不是\44.下面是正则表达式的选择、分组和引用字符: 字符 含义 ____________________________________________________________________ | 选择.匹配的要么是该符号左边的子表达式,要么它右边的子表达式 (...) 分组.将几个项目分为一个单元.这个单元可由 *、+、?和|等符号使用,而且还可以记住和这个组匹配的字符以供此后引 用使用 \n 和第n个分组所匹配的字符相匹配.分组是括号中的子表达式(可能是嵌套的).分组号是从左到右计数的左括号数 ____________________________________________________________________ 5.指定匹配的置 我们已经看到了,一个正则表达式中的许多元素才能够匹配字符串的一个字符.例如: \s 匹配的只是一个空白符.还有一些正则表达式的元素匹配的是字符之间宽度为 0的空间,而不是实际的字符例如: \b 匹配的是一个词语的边界,也就是处于一个/w字字符和一个\w非字字符之间的边界.像\b 这样的字符并不指定任何一个匹配了的 字符串中的字符,它们指定的是匹配所发生的合法置.有时我们称这些元素为正则表达式的锚.因为它们将模式定在检索字符串中的一个特定置.最常用的锚元 素是 ^, 它使模式依赖于字符串的开头,而锚元素$则使模式定在字符串的末尾. 例如:要匹配词 "javascript" ,我们可以使用正则表达式 /^ javascript $/. 如果我们想检索 "java" 这个词自身 (不像在 "javascript" 中那样作为前缀),那么我们可以使 用模式 /\s java \s /, 它要求在词语java之前和之后都有空格.但是这样作有两个问题.第一: 如果 "java" 出现在一个字符的开头或者是结尾.该模式就不会与之匹配,除 非在开头和结尾处有一个空格. 第二: 当这个模式找到一个与之匹配的字符时,它返回的匹配的字符串前端和后端都有空格,这并不是我们想要的.因此,我们使用词语 的边界 \b 来代替真正的空格符 \s 进行匹配. 结果表达式是 /\b java \b/. 下面是正则表达式的锚字符: 字符 含义 ____________________________________________________________________ ^ 匹配的是字符的开头,在多行检索中,匹配的是一行的开头 $ 匹配的是字符的结尾,在多行检索中,匹配的是一行的结尾 \b 匹配的是一个词语的边界.简而言之就是于字符\w 和 \w之间的置(注意:[\b]匹配的是退格符) \B 匹配的是非词语的边界的字符 _____________________________________________________________________ 6.属性 有关正则表达式的语法还有最后一个元素,那就是正则表达式的属性,它说明的是高级模式匹配的规则.和其它正则表达式语法不同,属性是在 / 符号之外说明的.即它 们不出现在两个斜杠之间,而是于第二个斜杠之后.javascript 1.2支持两个属性.属性 i 说明模式匹配应该是大小写不敏感的.属性 g 说明模式匹配应该是全局的.也 就是说,应该找出被检索的字符串中所有的匹配.这两种属性联合起来就可以执行一个全局的,大小写不敏感的匹配. 例如: 要执行一个大小不敏感的检索以找到词语 "java" (或者是 "java" 、"JAVA"等) 的第一个具体值,我们可以使用大小不敏感的正则表达式 /\b java\b/i .如果要在 一个字符串中找到 "java" 所有的具体值,我们还可以添加属性 g, 即 /\b java \b/gi . 以下是正则表达式的属性: 字符 含义 _________________________________________ i 执行大小写不敏感的匹配 g 执行一个全局的匹配,简而言之,就是找到所有的匹配,而不是在找到第一个之后就停止了 _________________________________________ 除属性 g 和 i 之外,正则表达式就没有其它像属性一样的特性了.如果将构造函数 RegExp 的静态属性 multiline 设置为 true ,那么模式匹配将以多行的模式进行.在这 种模式下,锚字符 ^ 和 $ 匹配的不只是检索字符串的开头和结尾,还匹配检索字符串内部的一行的开头和结尾.例如: 模式 /Java$/ 匹配的是 "Java",但是并不匹配 "Java\nis fun" .如果我们设置了 multiline 属性,那么后者也将被匹配: RegExp.multiline = true; 在JAVASCRIPT里面判断一个字符串是否是电子邮件的格式: if(formname.email.value!=formname.email.value.match(/^\w +[@]\w +[.][\w.] +$/)) { alert("您的电子邮件格式错误!"); formname.email.focus(); return false; } 阅读全文(42) | 回复(0) | 引用(0) | [用365key收藏此日志] [RED]function dateVerify(date){ var reg = /^(\d{4})(-)(\d{2})\2(\d{2})$/; var r = date.match(reg); if(r==null) return false; var d= new Date(r[1], r[3]-1,r[4]); var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate(); date=r[1]+r[2]+((r[3]-1)+1)+r[2]+((r[4]-1)+1); return newStr==date; }[/RED] javascript的17种正则表达式 作者: 不祥  时间: 2004-6-9 "^\\d+$"  //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$"  //正整数 "^((-\\d+)|(0+))$"  //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$"  //负整数 "^-?\\d+$"    //整数 "^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0) "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数 "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0) "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数 "^(-?\\d+)(\\.\\d+)?$"  //浮点数 "^[A-Za-z]+$"  //由26个英文字母组成的字符串 "^[A-Z]+$"  //由26个英文字母的大写组成的字符串 "^[a-z]+$"  //由26个英文字母的小写组成的字符串 "^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串 "^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串 "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址 "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url JavaScript中的正则表达式(2) 作者 :中国论坛网收集 来源 :http://www.51one.net 加入时间 :2004-8-25   正则表达式对象的属性及方法    预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen, leftContext, rightContext和$1到$9。其中input和multiline可以预设置。其他属性的值在执行过exec或test方法后被根据不同条件赋以不同的值。许多属性同时拥有长和短(perl风格)的两个名字,并且,这两个名字指向同一个值。(JavaScript模拟perl的正则表达式) 正则表达式对象的属性 属性 含义 $1...$9 如果它(们)存在,是匹配到的子串 $_ 参见input $* 参见multiline $& 参见lastMatch $+ 参见lastParen $` 参见leftContext $''          参见rightContext constructor    创建一个对象的一个特殊的函数原型 global       是否在整个串中匹配(bool型) ignoreCase     匹配时是否忽略大小写(bool型) input        被匹配的串 lastIndex     最后一次匹配的索引 lastParen     最后一个括号括起来的子串 leftContext    最近一次匹配以左的子串 multiline     是否进行多行匹配(bool型) prototype     允许附加属性给对象 rightContext    最近一次匹配以右的子串 source       正则表达式模式 lastIndex     最后一次匹配的索引 正则表达式对象的方法 方法 含义 compile      正则表达式比较 exec        执行查找 test        进行匹配 toSource      返回特定对象的定义(literal representing),其值可用来创建一个新的对象。重载Object.toSource方法得到的。 toString      返回特定对象的串。重载Object.toString方法得到的。 valueOf      返回特定对象的原始值。重载Object.valueOf方法得到 例子 var myReg = /(w+)s(w+)/; var str = "John Smith"; var newstr = str.replace(myReg, "$2, $1"); document.write(newstr); 将输出"Smith, John" javascript正则表达式检验 /********************************************************************************* * EO_JSLib.js * javascript正则表达式检验 **********************************************************************************/ //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } //校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串 function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } //校验用户姓名:只能输入1-30个以字母开头的字串 function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } //校验密码:只能输入6-20个字母、数字、下划线 function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true } //校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-” function isTel(s) { //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/; var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } //校验手机号码:必须以数字开头,除数字外,可含有“-” function isMobil(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } //校验邮政编码 function isPostalCode(s) { //var patrn=/^[a-zA-Z0-9]{3,12}$/; var patrn=/^[a-zA-Z0-9 ]{3,12}$/; if (!patrn.exec(s)) return false return true } //校验搜索关键字 function isSearch(s) { var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,./?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;'\,.?]{0,19}$/; if (!patrn.exec(s)) return false return true } function isIP(s) //by zergling { var patrn=/^[0-9.]{1,20}$/; if (!patrn.exec(s)) return false return true } 正则表达式regular expression详述(一) http://www.kymita.com/888.asp 2002-12-15 蓝箭工作室 正则表达式是regular expression,看来英文比中文要好理解多了,就是检查表达式符 不符合规定!!正则表达式有一个功能十分强大而又十分复杂的对象RegExp,在JavaScript1.2 版本以 上提供。 下面我们看看有关正则表达式的介绍: 正则表达式对象用来规范一个规范的表达式(也就是表达式符不符合特定的要求,比如是不是Email 地址格式等),它具有用来检查给出的字符串是否符合规则的属性和方法。 除此之外,你用RegExp构造器建立的个别正则表达式对象的属性,就已经预先定义好了正则表达式 对象的静态属性,你可以随时使用它们。 核心对象: 在JavaScript 1.2, NES 3.0以上版本提供。 在JavaScript 1.3以后版本增加了toSource方法。 建立方法: 文字格式或RegExp构造器函数。 文字建立格式使用以下格式: /pattern/flags即/模式/标记 构造器函数方法使用方法如下: new RegExp("pattern"[, "flags"])即new RegExp("模式"[,"标记"]) 参数: pattern(模式) 表示正则表达式的文本 flags(标记) 如果指定此项,flags可以是下面值之一: g: global match(全定匹配) i: ignore case(忽略大小写) gi: both global match and ignore case(匹配所有可能的值,也忽略大小写) 注意:文本格式中的参数不要使用引号标记,而构造器函数的参数则要使用引号标记。所以下面的 表达式建立同样的正则表达式: /ab+c/i    new RegExp("ab+c", "i") 描述: 当使用构造函数的时候,必须使用正常的字符串避开规则(在字符串中加入前导字符\ )是必须的。 例如,下面的两条语句是等价的: re = new RegExp("\\w+") re = /\w+/ 下面的提供了在正则表达式中能够使用的完整对特殊字符的一个完整的列表和描述。 表1.3:正则表达式中的特殊字符: 字符\ 意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,\不作解释。 例如:/b/匹配字符'b',通过在b 前面加一个反斜杠\,也就是/\b/,则该字符变成特殊字符,表示 匹配一个单词的分界线。 或者: 对于几个字符,通常说明是特殊的,指出紧接着的字符不是特殊的,而应该按字面解释。 例如:*是一个特殊字符,匹配任意个字符(包括0个字符);例如:/a*/意味匹配0个或多个a。 为了匹配字面上的*,在a前面加一个反斜杠;例如:/a\*/匹配'a*'。 字符^ 意义:表示匹配的字符必须在最前边。 例如:/^A/不匹配"an A,"中的'A',但匹配"An A."中最前面的'A'。 字符$ 意义:与^类似,匹配最末的字符。 例如:/t$/不匹配"eater"中的't',但匹配"eat"中的't'。 字符* 意义:匹配*前面的字符0次或n次。 例如:/bo*/匹配"A ghost booooed"中的'boooo'或"A bird warbled"中的'b',但不匹配"A goat g runted"中的任何字符。 字符+ 意义:匹配+号前面的字符1次或n次。等价于{1,}。 例如:/a+/匹配"candy"中的'a'和"caaaaaaandy."中的所有'a'。 字符? 意义:匹配?前面的字符0次或1次。 例如:/e?le?/匹配"angel"中的'el'和"angle."中的'le'。 字符. 意义:(小数点)匹配除换行符外的所有单个的字符。 例如:/.n/匹配"nay, an apple is on the tree"中的'an'和'on',但不匹配'nay'。 字符(x) 意义:匹配'x'并记录匹配的值。 例如:/(foo)/匹配和记录"foo bar."中的'foo'。匹配子串能被结果数组中的素[1], ..., [n] 返 回,或被RegExp对象的属性$1, ..., $9返回。 字符x|y 意义:匹配'x'或者'y'。 例如:/green|red/匹配"green apple"中的'green'和"red apple."中的'red'。 字符{n} 意义:这里的n是一个正整数。匹配前面的n个字符。 例如:/a{2}/不匹配"candy,"中的'a',但匹配"caandy," 中的所有'a'和"caaandy."中前面的两个 'a'。 字符{n,} 意义:这里的n是一个正整数。匹配至少n个前面的字符。 例如:/a{2,}不匹配"candy"中的'a',但匹配"caandy"中的所有'a'和"caaaaaaandy."中的所有'a' 字符{n,m} 意义:这里的n和m都是正整数。匹配至少n个最多m个前面的字符。 例如:/a{1,3}/不匹配"cndy"中的任何字符,但匹配 "candy,"中的'a',"caandy," 中的前面两个 'a'和"caaaaaaandy"中前面的三个'a',注意:即使"caaaaaaandy" 中有很多个'a',但只匹配前面的三 个'a'即"aaa"。 字符[xyz] 意义:一字符列表,匹配列出中的任一字符。你可以通过连字符-指出一个字符范围。 例如:[abcd]跟[a-c]一样。它们匹配"brisket"中的'b'和"ache"中的'c'。 字符[^xyz] 意义:一字符补集,也就是说,它匹配除了列出的字符外的所有东西。 你可以使用连字符-指出一 字符范围。 例如:[^abc]和[^a-c]等价,它们最早匹配"brisket"中的'r'和"chop."中的'h'。 字符[\b] 意义:匹配一个空格(不要与\b混淆) 字符\b 意义:匹配一个单词的分界线,比如一个空格(不要与[\b]混淆) 例如:/\bn\w/匹配"noonday"中的'no',/\wy\b/匹配"possibly yesterday."中的'ly'。 字符\B 意义:匹配一个单词的非分界线 例如:/\w\Bn/匹配"noonday"中的'on',/y\B\w/匹配"possibly yesterday."中的'ye'。 字符\cX 意义:这里的X是一个控制字符。匹配一个字符串的控制字符。 例如:/\cM/匹配一个字符串中的control-M。 字符\d 意义:匹配一个数字,等价于[0-9]。 例如:/\d/或/[0-9]/匹配"B2 is the suite number."中的'2'。 字符\D 意义:匹配任何的非数字,等价于[^0-9]。 例如:/\D/或/[^0-9]/匹配"B2 is the suite number."中的'B'。 字符\f 意义:匹配一个表单符 字符\n 意义:匹配一个换行符 字符\r 意义:匹配一个回车符 字符\s 意义:匹配一个单个white空格符,包括空格,tab,form feed,换行符,等价于[ \f\n\r\t\v]。 例如:/\s\w*/匹配"foo bar."中的' bar'。 字符\S 意义:匹配除white空格符以外的一个单个的字符,等价于[^ \f\n\r\t\v]。 例如:/\S/\w*匹配"foo bar."中的'foo'。 字符\t 意义:匹配一个制表符 字符\v 意义:匹配一个顶头制表符 字符\w 意义:匹配所有的数字和字母以及下划线,等价于[A-Za-z0-9_]。 例如:/\w/匹配"apple,"中的'a',"$5.28,"中的'5'和"3D."中的'3'。 字符\W 意义:匹配除数字、字母外及下划线外的其它字符,等价于[^A-Za-z0-9_]。 例如:/\W/或者/[^$A-Za-z0-9_]/匹配"50%."中的'%'。 字符\n 意义:这里的n是一个正整数。匹配一个正则表达式的最后一个子串的n的值(计数左圆括号)。 例如:/apple(,)\sorange\1/匹配"apple, orange, cherry, peach."中的'apple, orange',下面 有一个更加完整的例子。 注意:如果左圆括号中的数字比\n指定的数字还小,则\n取下一行的八进制escape作为描述。 字符\ooctal和\xhex 意义:这里的\ooctal是一个八进制的escape值,而\xhex是一个十六进制的escape值,允许在一个 正则表达式中嵌入ASCII码。 当表达式被检查的时候,文字符号提供了编辑正则表达式的方法。利用文字符号可以使到正则表达 式保持为常数。例如,如果你在一个循环中使用文字符号来构造一个正则表达式,正则表达式不需进行 反复编译。 正则表达式对象构造器,例如,new RegExp("ab+c"),提供正则表达式的运行时编译。当你知道正 则表达式的模式会变化的时候,应该使用构造函数,或者你不知道正则表达式的模式,而它们是从另外 的源获得的时候,比如由用户输入时。一旦你定义好了正则表达式,该正则表达式可在任何地方使用, 并且可以改变,你可以使用编译方法来编译一个新的正则表达式以便重新使用。 一个分离预先定义的RegExp对象可以在每个窗口中使用;也就是说,每个分离的JavaScript线程运 行以获得自己的RegExp对象。因为每个脚本在一个线程中是不可中断的,这就确保了不同的脚本不会覆 盖RegExp对象的值。 预定义的RegExp对象包含的静态属性:input, multiline, lastMatch,lastParen, leftContext, rightContext, 以及从$1到$9。input和multiline属性能被预设。其它静态属性的值是在执行个别正则 表达式对象的exec和test方法后,且在执行字符串的match和replace方法后设置的。 属性 注意RegExp对象的几个属性既有长名字又有短名字(象Perl)。这些名字都是指向相同的值。Perl是 一种编程语言,而JavaScript模仿了它的正则表达式。 属性$1, ..., $9 取得匹配的子串,如果有的话 属性$_ 参考input 属性$* 参考multiline 属性$& 参考lastMatch 属性$+ 参考lastParen 属性$` 参考leftContext 属性$' 参考rightContext 属性constructor 指定用来建立对象原型函 属性global 决定是否测试正则表达式是否不能匹配所有的字符串,或者只是与最先的冲突。 属性ignoreCase 决定试图匹配字符串的时候是否忽略大小写 属性input 当正则表达式被匹配的时候,为相反的字符串。 属性lastIndex 决定下一次匹配从那里开始 属性lastMatch 最后一个匹配的字符 属性lastParen 子串匹配的时候,最后一个parenthesized,如果有的话。 属性leftContext 最近一次匹配前的子串。 属性multiline 是否在串的多行中搜索。 属性prototype 允许附加属性到所有的对象 属性rightContext 最近一次匹配后的的子串。 属性source 模式文本 方法 compile方法 编译一个正则表达式对象 exec方法 运行正则表达式匹配 test方法 测试正则达式匹配 toSource方法 返回一个对象的文字描述指定的对象;你可以使用这个值来建立一个新的对象。不考虑Object.toS ource方法。 toString方法 返回一个字符串描述指定的对象,不考虑Object.toString对象。 valueOf方法 返回指定对角的原始值。不考虑Object.valueOf方法。  另外,这个对象继承了对象的watch和unwatch方法    例子:    例1、下述示例脚本使用replace方法来转换串中的单词。在替换的文本中,脚本使用全局 RegExp 对象的$1和$2属性的值。注意,在作为第二个参数传递给replace方法的时候,RegExp对象的$属性的名 称。 re = /(\w+)\s(\w+)/; str = "John Smith"; newstr=str.replace(re,"$2, $1"); document.write(newstr) 显示结果:"Smith, John".   例2、下述示例脚本中,RegExp.input由Change事件处理句柄设置。在getInfo函数中,exec 方法 使用RegExp.input的值作为它的参数,注意RegExp预置了$属性。 function getInfo(abc) { re = /(\w+)\s(\d+)/; re.exec(abc.value); window.alert(RegExp.$1 + ", your age is " + RegExp.$2); }   请输入你的姓和年龄,输入完后按回车键。       $1, ..., $9属性 用圆括号括着的匹配子串,如果有的话。 是RegExp的属性 静态,只读 在JavaScript 1.2, NES 3.0以上版本提供 描述:因为input是静态属性,不是个别正则表达式对象的属性。你可以使用RegExp.input 访问该 属性。 能加上圆括号的子串的数量不受限制,但正则表达式对象只能保留最后9 条。如果你要访问所有的 圆括号内的匹配字串,你可以使用返回的数组。 这些属性能用在RegExp.replace方法替换后的字符串(输出结果)。当使用这种方式的时候,不用预 先考虑RegExp对象。下面给出例子。当正则表达式中没有包含圆括号的时候,该脚本解释成$n的字面意 义。(这里的n是一个正整数)。 例如: 下例脚本使用replace 方法来交换串中单词的置。在替换后的文本字串中,脚本使用正则表达式 RegExp对象的$1和$2属性的值。注意:当它们向replace方法传递参数的时候,这里没有考虑 $ 属性的 RegExp对象的名称。 re = /(\w+)\s(\w+)/; str = "John Smith"; newstr=str.replace(re,"$2, $1"); document.write(newstr) 显示的输出结果为:Smith, John。 正则表达式regular expression详述(二) http://www.kymita.com/888.asp 2002-12-15 蓝箭工作室 正则表达式详述(二) 以下这些不是正则表达式的新增对象请参阅对应的JavaScript对象的属性 $_属性 参考input $*属性 参考multiline $&属性 参考lastMatch $+属性 参考lastParen $`属性 参考leftContext $'属性 参考rightContext compile方法 在脚本运行期间编译正则表达式对象 属于RegExp的方法 在JavaScript 1.2, NES 3.0以上版本提供 语法: regexp.compile(pattern[, flags]) 以数: regexp 正则表达式的名称,可以是变量名或文字串。 pattern 正则表达式的定义文本。 flags 如果指定的话,可以是下面其中的一个: "g": 匹配所有可能的字串 "i": 忽略大小写 "gi": 匹配所有可能的字串及忽略大小写 描述: 使用compile方法来编译一个正则表达式 created with the RegExp constructor function。这样 就强制正则表达式只编译一次,而不是每次遇到正则表达式的时候都编译一次。当你确认正则表达式能 保持不变的时候可使用compile 方法来编译它(在获得它的匹配模式后),这样就可以在脚本中重复多次使用它。 你亦可以使用compile 方法来改变在运行期间改变正则表达式。例如,假如正则表达式发生变化, 你可以使用compile方法来重新编译该对象来提高使用效率。 使用该方法将改变正则表达式的source, global和ignoreCasesource属性的值。 constructor 指出建立对象原型的function。注意这个属性的值由函数本身提供,而不是一个字串包含RegExp的name.Property提供。 在JavaScript 1.1, NES 2.0以上版本提供 ECMA版本ECMA-262 描述:参考Object.constructor. exec方法 在指定的字符串运行匹配搜索。返回一个结果数组。 是RegExp的方法 在JavaScript 1.2, NES 3.0以上版本提供 语法: regexp.exec([str])regexp([str]) 参数: regexp,正则表达式的名称,可以是一个变量名或文字定义串。 str,要匹配正则表达式的字符串,如果省略,将使用RegExp.input的值。 描述:就如在语法描述中的一样,正则表达工的exec方法能够被直接调用(使用regexp.exec(str))或者间接调用(使用regexp(str))。 假如你只是运行以找出是否匹配,可以使用String搜索方法。 假如匹配成功,exec方法返回一个数组并且更新正则表达式对象属性的值和预先定义的正则表达式对象、RegExp。如果匹配失败,exec方法返回null。 请看下例: //匹配一个b接着一个或多个d,再接着一个b //忽略大小写 myRe=/d(b+)(d)/ig; myArray = myRe.exec("cdbBdbsbz"); 下面是该脚本的返回值:对象 属性/Index 描述 例子 myArray myArray的内容 ["dbBd", "bB", "d"] index 基于0的匹配index 1 input 原始字符串 cdbBdbsbz [0] 最后匹配的字符 dbBd [1], ...[n] 用圆括号括住的匹配字符串,如果有的话。不限制括号的个数。 [1] = bB [2] = d myRe lastIndex 开始下次匹配操作的index值 5 ignoreCase 指出"i"是否使用以忽略大小写 true global 指出是否使用"g"标记来进行匹配所有可能的字串 true source 定义模式的文本字符串 d(b+)(d) RegExp lastMatch$& 最后匹配的字符 dbBd leftContext$\Q 最新匹配前面的子串 c rightContext$' 最新匹配后面的子串 bsbz $1, ...$9 圆括号内的匹配子串,如果有的话。圆括号的个数不受限制,但RegExp只能保留最后9个 $1 = bB $2 = d lastParen $+ 最后一个加上圆括号的匹配子串,如果有的话 d 假如你的正则表达式使用了"g"标记,你可以多次使用exec 方法来连续匹配相同的串。当你这样做 的时候,新的匹配将从由正则表达式的lastIndex 属性值确定的子串中开始。例如,假定你使用下面的脚本: myRe=/ab*/g;str = "abbcdefabh" myArray = myRe.exec(str); document.writeln("Found "+myArray[0]+". Next match starts at "+myRe.lastIndex) mySecondArray = myRe.exec(str); document.writeln("Found "+mySecondArray[0]+". Next match starts at "+myRe.lastIndex) 这个脚本显示如下结果: Found abb. Next match starts at 3 Found ab. Next match starts at 9 例子: 在下面的例子中,用户输入一个名字,脚本根据输入执行匹配操作。接着检查数组看是否和其它用户的名字匹配。 本脚本假定已注册的用户的姓已经存进了数组A中,或许从一个数据库中取得。 A = ["zhao","qian","sun","li","liang"] function lookup() { firstName = /\w+/i(); if (!firstName) window.alert (RegExp.input + "非法输入"); else { count=0; for (i=0;i 输入你的姓然后按回车键。 global属性 正则表达式中是否使用了"g"标记。 RegExp属性,只读 在JavaScript 1.2, NES 3.0以上版本提供 描述: global是一个个别正则表达式对象的属性 如果使用了"g"标记,global的值为true;否则为 false。"g"标记指定正则表达式测试所有可能的匹配。 你不能直接改变该属性的值,但可以调用compile方法来改变它。 ignoreCase 检查正则表达式是否使用了"i"标记 RegExp属性,只读 在JavaScript 1.2, NES 3.0以上版本提供 描述: ignoreCase是个别正则表达式对象的一个属性。 如果使用了"i"标记,则返回true,否则返回false。"i"标记指示在进行匹配的时候忽略大小写。 你不能直接改变该属性的值,但可以通过调用compile方法来改变它 input 指出正则表达式要测试那个字串。$_是这个属性的另一个名字。 RegExp的属性,静态 在JavaScript 1.2, NES 3.0以上版本提供 描述:因为input是静态的,不是某个个别的正则表达式对象的属性。你也可以使用 RegExp.input来表示。 如果没有给正则表达式的exec或test方法提供字符串,并且RegExp.input中有值,则使用它的值来调用该方法。 脚本或浏览器能够预置input属性。如果被预置了值且调用exec或 test方法的时候没有提供字符串 则调用exec或test的时候使用input的值。input可以被浏览器以下面的方式设置: 当text表单域处理句柄被调用的时候,input被设置为该text输入的字串。 当textarea表单域处理句柄被调用的时候,input被设置为textarea域内输入的字串。注意multili ne亦被设置成true从而能匹配多行文本。 当select表单域处理句柄被调用的时候,input被设置成selected text的值。 当链接对象的处理句柄被调用的时候,input被设置成和之间的字符串。 事件理现句柄处理完毕后,input属性的值被清除。 lastIndex 可读/可写的一个整数属性,指出下一次匹配从哪里开始。 RegExp的属性 在JavaScript 1.2, NES 3.0以上版本提供 描述:lastIndex 是个别的正则表达式对象的属性。 这个属性只有当正则表达式的"g"标记被使用以进行全串匹配的时候才被设置。实行以下规则: 如果lastIndex大小字符串的长度,regexp.test和regexp.exec失败,且lastIndex被设为0。 如果lastIndex等于字串的长度且正则表达式匹配空字符串,则正则表达式从lastIndex的置开始匹配。 如果lastIndex等于字符串的长度且正则表达式不匹配空字符串,则正则表达式不匹配input,且lastIndex被置为0。 否则,lastIndex被设置成最近一次匹配的下一点。 例如,按下面的顺序执行脚本: re = /(hi)?/g 匹配空字符串 re("hi") 返回["hi", "hi"],lastIndex置为2 re("hi") 返回[""],一个空数组,它的下标为0的元素就是匹配字符串。在这种情况下,返回空 串是因为lastIndex等于2(且仍然是2),并且"hi"的长度也是2。 lastMatch 最后一次匹配字符串,$&是同样的意思。 RegExp的属性,静态,只读 在JavaScript 1.2, NES 3.0以上版本提供 描述:因为lastMatch是静态的,所以它不是个别指定正则表达式的属性。你也可以使用RegExp.lastMatch。 lastParen 最后一次加上括号的匹配字符串,如果有的话。$+是同样的意思。 RegExp属性,静态,只读 在JavaScript 1.2, NES 3.0以上版本提供 描述:因为lastParen是静态的,它不是某个个别正则式的属性,你可以使用RegExp.lastParen 表达同样的意思。 leftContext 最近一次匹配前面的子串,$`具有相同的意思。 RegExp的属性,静态,只读 在JavaScript 1.2, NES 3.0以上版本提供 描述:因为leftContext是静态的,不是某一个正则表达式的属性,所以可以使用RegExp.leftContext来表达想同的意思。 multiline 反映是否匹配多行文本,$*是相同的意思。 RegExp的属性,静态 在JavaScript 1.2, NES 3.0以上版本提供 描述:因为multiline是静态的,而不是某个个别正则表达式的属性,所以能够用RegExp.multiline表达相同的意思。 如果允许匹配多行文本,则multiline为true,如果搜索必须在换行时停止,则为false。 脚本或浏览器能够设置multiline属性。当一个textarea的事件处理句柄被调用的时候,multiline 被置为true。在事件处理句柄处理完毕后,multiline属性值被清除。也就是说,如果你设置了multili ne为true,则执行任何的事件处理句柄后,multiline被置为false。 prototype 描绘类的原型。你可以根据要求使用prototype来增加类的属性或方法。为了获得prototypes 的资 料,请参阅RegExp的Function.prototype.Property属性。 从JavaScript 1.1, NES 2.0版本开始提供 ECMA版本ECMA-262 rightContext 最后一次匹配的右边的字符串,$'是同样的效果。 RegExp的属性,静态,只读 从 JavaScript 1.2, NES 3.0以上版本开始提供 描述:因为rightContext是静态的,不是某个个别正则表达工的属性,可以使用RegExp.rightContext来达到相同的效果。 source 一个只读属性,包含正则表达式定义的模式,不包侨forward slashes和"g"或"i"标记。 RegExp的属性,只读 从JavaScript 1.2, NES 3.0以上版本开始提供 描述:source是个别正则表达式对象的属性,你不能直接改变它的值,但可以通过调用compile 方法来改变它。 test 执行指定字符串的正则表达式匹配搜索,返回true或false。 RegExp的方法 从JavaScript 1.2, NES 3.0以上版本开始提供 语法:regexp.test([str]) 参数:regexp,正则表达式的名称,可以是变量名或正则表达式定义文字串 str,要匹配的字符串,如果省略,将使用RegExp.input的值为作参数 描述:当你需要知道一个字符串能否匹配某个正则表达工,可以使用test方法(与String.search方 法类似); 为了获得更多的信息(但速度将变慢),可以使用exec方法(与String.match方法类似)。 例子:下面的例子显示test是否成功的提示: function testinput(re, str){ if (re.test(str)) midstring = " contains "; else midstring = " does not contain "; document.write (str + midstring + re.source); } toSource 返回一个字符串象征对象的源码 RegExp的方法 从JavaScript 1.3以上版本开始提供 语法:toSource() 参数:没有 描述:toSource方法返回下述的值: 对于内置的RegExp对象,toSource返回下面的字符象征源码不可用: function Boolean(){ [native code] } 在RegExp场合中, toSource返回象征源码的字符串,通常这个方法是由JavaScript内部自动调用而不是不代码中显式调用。 更多请看Object.toSource toString 返回描绘指定对象的字符串。 RegExp的方法 从JavaScript 1.1, NES 2.0开始提供 ECMA版本ECMA-262 语法:toString() 参数:无 描述:RegExp对象不考虑Object对象的toString方法;它不继承Object.toString,对于RegExp 对 象,toString方法返回一个代表该对象的字符串。 例如:下面的例子显示象征RegExp对象的字符串 myExp = new RegExp("a+b+c"); alert(myExp.toString()) displays "/a+b+c/" 更多请看:Object.toString valueOf 返回一个RegExp对象的原始值 RegExp的方法 从JavaScript 1.1版本开始提供 ECMA版本:ECMA-262 语法:valueOf() 参数:无 描述:RegExp的valueOf方法以字符串形式返回RegExp对象的原始值,这个值与RegExp.toString相等。 该方法通常由JavaScript内部自动调用而不是显式调用 例子: myExp = new RegExp("a+b+c"); alert(myExp.valueOf()) displays "/a+b+c/" 正则表达式在javascript中的几个实例1(转) ! 去除字符串两端空格的处理 如果采用传统的方式,就要可能就要采用下面的方式了 //清除左边空格 function js_ltrim(deststr) { if(deststr==null)return ""; var pos=0; var retStr=new String(deststr); if (retStr.lenght==0) return retStr; while (retStr.substring(pos,pos+1)==" ") pos++; retStr=retStr.substring(pos); return(retStr); } //清除右边空格 function js_rtrim(deststr) { if(deststr==null)return ""; var retStr=new String(deststr); var pos=retStr.length; if (pos==0) return retStr; while (pos && retStr.substring(pos-1,pos)==" " ) pos--; retStr=retStr.substring(0,pos); return(retStr); } //清除左边和右边空格 function js_trim(deststr) { if(deststr==null)return ""; var retStr=new String(deststr); var pos=retStr.length; if (pos==0) return retStr; retStr=js_ltrim(retStr); retStr=js_rtrim(retStr); return retStr; } 采用正则表达式,来去除两边的空格,只需以下代码 String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } 一句就搞定了, 可见正则表达式为我们节省了相当的编写代码量 ! 移动手机号的校验 如果采用传统的校验方式至少就要完成下面三步的校验, (1). 是否是数字 (2).是否是11 (3).数字的第三是否是5,6,7,8,9 如果采用正则表达式校验,只需以下代码 function checkMobile1(form) { if (form.mobile.value > "") { var reg=/13[5,6,7,8,9]\d{8}/; if ( form.mobile.value.match(reg)== null) { alert("请输入正确的移动手机号码!"); form.mobile.focus(); return false; } } return true; } 从上面的代码可以看出校验移动手机号只需定义一个var reg=/13[5,6,7,8,9]\d{8}/;模式匹配串就可以完成合法性校验了 ! URL的校验, 条件:必须以http:// 或 https:// 开头, 端口号必须为在1-65535 之间, 以下代码完成了合法性校验 //obj:数据对象 //dispStr :失败提示内容显示字符串 function checkUrlValid( obj, dispStr) { if(obj == null) { alert("传入对象为空"); return false; } var str = obj.value; var urlpatern0 = /^https?:\/\/.+$/i; if(!urlpatern0.test(str)) { alert(dispStr+"不合法:必须以'http:\/\/'或'https:\/\/'开头!"); obj.focus(); return false; } var urlpatern2= /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?.+$/i; if(!urlpatern2.test(str)) { alert(dispStr+"端口号必须为数字且应在1-65535之间!"); obj.focus(); return false; } var urlpatern1 =/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i; if(!urlpatern1.test(str)) { alert(dispStr+"不合法,请检查!"); obj.focus(); return false; } var s = "0"; var t =0; var re = new RegExp(":\\d+","ig"); while((arr = re.exec(str))!=null) { s = str.substring(RegExp.index+1,RegExp.lastIndex); if(s.substring(0,1)=="0") { alert(dispStr+"端口号不能以0开头!"); obj.focus(); return false; } t = parseInt(s); if(t65535) { alert(dispStr+"端口号必须为数字且应在1-65535之间!"); obj.focus(); return false; } } return true; } 对url的校验,看上去有很多的代码,这是因为要给予出错提示, 否则只需var urlpatern1 =/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i; 一句就可以校验出url合法性了 正则表达式在JavaScript应用 时间戳: 2004-11-30 15:29:30 人气: 23 作者: AnyRock 来源:www.mending.cn -------------------------------------------------------------- 去掉字符串头尾多余的空格 /g是全文查找所有匹配 function String.prototype.Trim(){return this.replace(/(^\s*)|(\s*$)/g, "");} function String.prototype.LTrim(){return this.replace(/(^\s*)/g, "");} function String.prototype.RTrim(){return this.replace(/(\s*$)/g, "");} -------------------------------------------------------------- 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;} -------------------------------------------------------------- 应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下: String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } 得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1 s="http://www.9499.net/page1.htm" s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2") alert(s) ##利用正则表达式限制网页表单里的文本框输入内容: -------------------------------------------------------------- 用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,'))" -------------------------------------------------------------- 用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,'))" -------------------------------------------------------------- 用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,'))" -------------------------------------------------------------- 用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,'))" 用正则表达式和javascript对表单进行全面验证 代码:<!-- 使用时请将下面的javascript代码存到一个单一的js文件中。 1、表单要求 将对表单中的所有以下类型的域依次验证,所有验证是去除了前导和后缀空格的,要注意是区分大小写的。 2、空值验证 表单中任意域加上emptyInfo属性将对此域是否为空进行验证(可以和最大长度验证\一般验证方式同时使用)。 无此属性视为此域允许空值。    如: 3、最大长度验证(可以和空值验证、一般验证方式同时使用): 或, 3、一般验证方式(不对空值做验证):    如: 4、标准验证(不与其它验证方式同时使用): 全部通过来实现,并且不需要name属性以免提交到服务器。    4.1、合法日期验证: 注:这里也可以是,以下同 yearfieldName、monthfieldName、dayfieldName分别为年月日字段,月和日可以是两(MM)或一格式(M), 此处不对每个字段分别检验(如果要检验,请在年月日三个域分别使用前面的一般验证方式),只对日期的最大值是否合法检查; 4.2、日期格式验证(请注意,此验证不对日期是否有效进行验证,还未找到从格式中得到年月日数据的方法^_^): 其中格式仅对y、M、d、H、m、s进行支持(其它字符视为非时间的字符) 4.3、列表验证: 检验列表(checkbox、redio、select)是否至少选中了一条记录(对select主要用于多项选择) 其中validatorType可以是Checkbox、R、Select; 对于一个select表单,如果要求选择一条不能是第一条的记录,请用下列方式: ==请选择== 1 4.4、Email验证: 其中separator为可选项,表示输入多个email时的分隔符(无此选项只能是一个地址) 4.5、加入其它javascript操作: function functionname(){ 自定义方法 } 表单中加入(此时emptyInfo等属性无效) 时将调用function属性中指定的javascript方法(要求方法返回true或false,返回false将不再验证表单,也不提交表单)。 5、在表单通过验证提交前disable一个按钮(也可将其它域disable,不能与其它验证同在一个域),不要求按钮是表单中的最后一个 6、不验证表单    当validator域值为0时不对表单进行验证,直接提交表单或执行指定function并返回true后提交表单 functionName为可选 --> function getStringLength(str){ var endvalue=0; var sourcestr=new String(str); var tempstr; for (var strposition = 0; strposition 255 || tempstr.charCodeAt(0)<0) { endvalue=endvalue+2; } else { endvalue=endvalue+1; } } return(endvalue); } function trim(str){ if(str==null) return ""; if(str.length==0) return ""; var i=0,j=str.length-1,c; for(;i-1;j--){ c=str.charAt(j); if(c!=' ') break; } if(i>j) return ""; return str.substring(i,j+1); } function validateDate(date,format,alt){ var time=trim(date.value); if(time=="") return; var reg=format; var reg=reg.replace(/yyyy/,"[0-9]{4}"); var reg=reg.replace(/yy/,"[0-9]{2}"); var reg=reg.replace(/MM/,"((0[1-9])|1[0-2])"); var reg=reg.replace(/M/,"(([1-9])|1[0-2])"); var reg=reg.replace(/dd/,"((0[1-9])|([1-2][0-9])|30|31)"); var reg=reg.replace(/d/,"([1-9]|[1-2][0-9]|30|31))"); var reg=reg.replace(/HH/,"(([0-1][0-9])|20|21|22|23)"); var reg=reg.replace(/H/,"([0-9]|1[0-9]|20|21|22|23)"); var reg=reg.replace(/mm/,"([0-5][0-9])"); var reg=reg.replace(/m/,"([0-9]|([1-5][0-9]))"); var reg=reg.replace(/ss/,"([0-5][0-9])"); var reg=reg.replace(/s/,"([0-9]|([1-5][0-9]))"); reg=new RegExp("^"+reg+"$"); if(reg.test(time)==false){//验证格式是否合法 alert(alt); date.focus(); return false; } return true; } function validateDateGroup(year,month,day,alt){ var array=new Array(31,28,31,30,31,30,31,31,30,31,30,31); var y=parseInt(year.value); var m=parseInt(month.value); var d=parseInt(day.value); var maxday=array[m-1]; if(m==2){ if((y%4==0&&y0!=0)||y%400==0){ maxday=29; } } if(d>maxday){ alert(alt); return false; } return true; } function validateCheckbox(obj,alt){ var rs=false; if(obj!=null){ if(obj.length==null){ return obj.checked; } for(i=0;i<obj.length;i++){ if(obj[i].checked==true){ return true; } } } alert(alt); return rs; } function validateRadio(obj,alt){ var rs=false; if(obj!=null){ if(obj.length==null){ return obj.checked; } for(i=0;i<obj.length;i++){ if(obj[i].checked==true){ return true; } } } alert(alt); return rs; } function validateSelect(obj,alt){ var rs=false; if(obj!=null){ for(i=0;i<obj.options.length;i++){ if(obj.options[i].selected==true){ return true; } } } alert(alt); return rs; } function validateEmail(email,alt,separator){ var mail=trim(email.value); if(mail=="") return; var em; var myReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/; if(separator==null){ if(myReg.test(email.value)==false){ alert(alt); email.focus(); return false; } } else{ em=email.value.split(separator); for(i=0;i0&&myReg.test(em[i])==false){ alert(alt); email.focus(); return false; } } } return true; } function validateForm(theForm){// 若验证通过则返回true var disableList=new Array(); var field = theForm.elements; // 将表单中的所有元素放入数组 for(var i = 0; i field[i].maxLength){ alert(lengthInfo); field[i].focus(); return false; } var validatorType=field[i].validatorType; if(validatorType!=null){//其它javascript var rs=true; if(validatorType=="javascript"){ eval("rs="+field[i].functionName+"()"); if(rs==false){ return false; } else{ continue; } } else if(validatorType=="disable"){//提交表单前disable的按钮 disableList.length++; disableList[disableList.length-1]=field[i]; continue; } else if(validatorType=="Date"){ rs=validateDate(theForm.elements(field[i].fieldName),field[i].format,field[i].errorInfo); } else if(validatorType=="DateGroup"){ rs=validateDateGroup(theForm.elements(field[i].year),theForm.elements(field[i].month),theForm.elements(field[i].day),field[i].errorInfo); } else if(validatorType=="Checkbox"){ rs=validateCheckbox(theForm.elements(field[i].fieldName),field[i].errorInfo); } else if(validatorType=="Radio"){ rs=validateRadio(theForm.elements(field[i].fieldName),field[i].errorInfo); } else if(validatorType=="Select"){ rs=validateSelect(theForm.elements(field[i].fieldName),field[i].errorInfo); } else if(validatorType=="Email"){ rs=validateEmail(theForm.elements(field[i].fieldName),field[i].errorInfo); } else{ alert("验证类型不被支持, fieldName: "+field[i].name); return false; } if(rs==false){ return false; } } else{//一般验证 if(empty==false){ var v = field[i].validator; // 获取其validator属性 if(!v) continue; // 如果该属性不存在,忽略当前元素 var reg=new RegExp(v); if(reg.test(field[i].value)==false){ alert(field[i].errorInfo); field[i].focus(); return false; } } } } for(i=0;i<disableList.length;i++){ disableList[i].disabled=true; } return true; }
好的,我来为您介绍一下用vant实现表单校验的方法。 首先,您需要使用vant组件库中的`Field`组件作为表单输入框,并在其上添加`rules`属性以实现校验功能。下面是一个示例代码: ```html <template> <van-field v-model="value" label="输入框" placeholder="请输入内容" :rules="rules" /> </template> <script> export default { data() { return { value: '', rules: [ { validator: (rule, value) => { if (!value) { return '请输入内容'; } else if (value > 100) { return '最大不能超过100'; } else if (!/^\d+(\.\d{1})?$/.test(value)) { return '最多保留小数点'; } else { return true; } } } ] }; } }; </script> ``` 在这段代码中,我们定义了一个`value`变量来存储输入框中的值,同时定义了一个`rules`数组来存储校验规则。在`rules`数组中,我们使用了`validator`函数来实现校验逻辑。如果校验通过,`validator`函数应该返回`true`;如果校验失败,`validator`函数应该返回一个字符串,其中包含校验失败的原因。 在上述示例代码中,我们定义了三个校验规则: 1. 如果输入框的值为空,提示用户“请输入内容”; 2. 如果输入框的值大于100,提示用户“最大不能超过100”; 3. 如果输入框的值不符合“最多保留小数点”的要求,提示用户“最多保留小数点”。 您可以根据自己的需求修改这些校验规则,以适应不同的场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值