编程回忆之java回忆(正则表达式)
来源:互联网 发布:cassandra数据库教程 编辑:程序博客网 时间:2024/04/29 12:39
恩,让我想想,第一次用正则表达式是什么时候呢。那是一个英语阅读插件,用于读取内容后,智能生成阅读标签,统计标签出现的次数和频率。通过一套算法,分析阅读者的阅读习惯。听起来是很简单的样子吧。反正我现在想着是很不简单,当时负责编写的是智能生成阅读标签模块,幸亏是英语阅读插件,英文文章各个单词之间一般有空格隔开,让我读取文章的词语简单了很多。要是中文的可话得整死我。
生成阅读标签的核心就是词语的提取和语法的分析,这当中难免用到正则表达式。正则表达式是什么样的一个东西呢,可以这么说,正则表达式是一个筛选并提取字符的机器。
正则表达式的大部分基本知识可以在微软官网找到。举几个简单的例子说明一下吧。
/^\s*$/ ——匹配空行。
/\d{2}-\d{5}/ ——验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。
/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/ ——匹配HTML标记
在开发中,输入框经常需要验证一些特殊的输入,比如最经常用的验证邮箱输入,HTML的验证输入也是常用正则表达式进行验证的,我下面简单列出几条验证输入的样式,虽然是老代码了,但是实用价值还是很大的。下面是示例代码。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>test.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <table> <tr> 不能为空: <input onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')"> </tr> <tr> 只能输入英文和数字: <input onblur="if(/[^0-9a-zA-Z]/g.test(value))alert('有错')"> <input onkeyup="value=value.replace(/[^0-9a-zA-Z]/g,'')"/> <input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')"> </tr> <tr> 只能输入数字: <input name="text" type="text" id="NewPage" onKeyUp="value=value.replace(/\D/g,'')" onafterpaste="value=value.replace(/\D/g,'')" > </tr> <tr>只能输入中文:<input type="text" onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"> </tr> <tr> 只能输入英文: <input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')"> <input type="text" onkeyup="value=value.replace(/[^a-zA-Z]/g,'')"> </tr> <tr> 只能输入中文、英文、数字、@符号和.符号: <input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\@\.]/g,'')"> </tr> <tr> 只允许输入英文,且不能粘贴也无法弹出粘贴菜单: <input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')" onkeydown="fncKeyStop(event)" onpaste="return false" oncontextmenu = "return false"/> </tr> <tr> 只能输入数字和点号(注意:在[^\d\.]里的d不能写成大写D,否则就变成除了数字以外的所有字符): <input name="price" type="text" size="8" maxlength="8" onkeyup="value=value.replace(/[^\d\.]/g,'')" > </tr> </table> </body></html>
0 0
- 编程回忆之java回忆(正则表达式)
- 编程回忆之java回忆(工具选用)
- 编程回忆之java回忆(与mysql的连接)
- 黑马程序员---从头开始,回忆JAVA基础之正则表达式。
- 快速回忆正则表达式
- 编程回忆之java回忆(double和Double)
- 编程回忆之Android回忆(Android Socket编程)
- 编程回忆之Android回忆(Android 连接到webservice)
- 编程回忆之Android回忆(Android 调用短信服务)
- 编程回忆之数据库回忆(oracle数据库)
- 编程回忆之数据库回忆(oracle时间格式设置)
- 编程回忆之运维回忆(细节的作用)
- 编程回忆之运维回忆(数据丢失)
- 编程回忆之数据库回忆(oracle配置用户权限)
- 编程回忆之Android回忆(背景的平铺)
- 编程回忆之Android回忆(selector的用法)
- 编程回忆之Android回忆(Android权限大全)
- 编程回忆之Android回忆(巧用dimens适配多个分辨率)
- ubuntu下出现的问题和解决方法
- POJ 1195
- ubuntu常用命令
- 从程序员到技术总监,分享10年开发经验
- 查看服务的依存关系
- 编程回忆之java回忆(正则表达式)
- Global.asax.cs中的方法(包括自定义方法)的含义
- sar 获取CPU利用率
- 成功编译xbmc-android
- hbase的使用心得
- java多线程总结
- NYOJ 108 士兵杀敌(一)
- 100年的回文日期
- 初入职学习列表