编程回忆之java回忆(正则表达式)

  恩,让我想想,第一次用正则表达式是什么时候呢。那是一个英语阅读插件,用于读取内容后,智能生成阅读标签,统计标签出现的次数和频率。通过一套算法,分析阅读者的阅读习惯。听起来是很简单的样子吧。反正我现在想着是很不简单,当时负责编写的是智能生成阅读标签模块,幸亏是英语阅读插件,英文文章各个单词之间一般有空格隔开,让我读取文章的词语简单了很多。要是中文的可话得整死我。

        生成阅读标签的核心就是词语的提取和语法的分析,这当中难免用到正则表达式。正则表达式是什么样的一个东西呢,可以这么说,正则表达式是一个筛选并提取字符的机器。

         正则表达式的大部分基本知识可以在微软官网找到。举几个简单的例子说明一下吧。

        /^\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 οnblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')">
   </tr>
   <tr>
     只能输入英文和数字:
     <input οnblur="if(/[^0-9a-zA-Z]/g.test(value))alert('有错')">
  <input οnkeyup="value=value.replace(/[^0-9a-zA-Z]/g,'')"/>
  <input type="text" οnkeyup="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" οnkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">
   </tr>
   <tr>
     只能输入英文:
     <input type="text" οnkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')">
     <input type="text" οnkeyup="value=value.replace(/[^a-zA-Z]/g,'')">
     </tr>
   <tr>
    只能输入中文、英文、数字、@符号和.符号:
    <input type="text" οnkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\@\.]/g,'')">
   </tr>
 <tr>
    只允许输入英文,且不能粘贴也无法弹出粘贴菜单:
    <input type="text" οnkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')" οnkeydοwn="fncKeyStop(event)" οnpaste="return false" oncontextmenu = "return false"/>
   </tr>
   <tr>
    只能输入数字和点号(注意:在[^\d\.]里的d不能写成大写D,否则就变成除了数字以外的所有字符):
    <input name="price" type="text" size="8" maxlength="8" οnkeyup="value=value.replace(/[^\d\.]/g,'')" >
   </tr>
   </table>
  </body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值