正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。本贴随时会更新。

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:

String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

利用正则表达式分解和转换IP地址:

下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的javascript程序:

function IP2V(ip)
{
 re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g  //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
 throw new Error("Not a valid IP address!")
}
}

不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:

var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

利用正则表达式去除字串中重复的字符的算法程序:[注:此程序不正确,原因见本贴回复]

var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2)  //结果为:abcefgi

我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法,最终没有找到,这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。

得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1

s="http://www.9499.net/page1.htm"
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)

利用正则表达式限制网页表单里的文本框输入内容:

用正则表达式限制只能输入中文:οnkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"

用正则表达式限制只能输入全角字符: οnkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"

用正则表达式限制只能输入数字:οnkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

用正则表达式限制只能输入数字和英文:οnkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

转载于:https://www.cnblogs.com/SlashOut/archive/2006/04/05/367233.html

正则表达式 运算 常见相关推荐

  1. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  2. C语言位运算农夫过河,位运算常见操作和农夫过河问题(C++实现)

    二进制常见操作 二进制数中 1 的个数 解法 1 用 n & 1 判断最右边一位是否为 1,右移之后继续判断最右边一位,重复直到 n = 0.时间复杂度为 O(log2n) #include ...

  3. 正则表达式及常见用法介绍

    strObj.search(正则) 返回 下标/-1 strObj.match(正则) 返回 数组/null 正则的方法: re.test(字符) 返回 true/false 特点:只要有一个匹配就为 ...

  4. java求绝对值absultevalue,位运算常见技巧

    在新浪微博上看到一篇文章写位运算的写的很深入,文章链接见末尾,特此mark. 0.位运算的种类 符号 名称 运算规则 & 与 两个位都为1时,结果才为1,否则都为0 l 或 两个位都是0时,结 ...

  5. 数组中子数组运算常见写法

    子数组最大值 for(int j=0;j<size;j++){int value=INT_MIN;for(int i=j;i>=0;i--){ value=std::max(value,A ...

  6. C++ 11 深度学习(七)位运算常见操作

    1. 取出数中任意k位置的二进制位是0还是1 n >> k & 1 原理:先把想要取出的位置移动到个位,1的二进制是 0001 , 进行与操作就可以提取出最后一位是0还是1:二进制 ...

  7. 【实习】HTTP+正则表达式练习+常见正则表达式总结(Xmind)

    文章目录 **习题1** **Step1: 爬取原始数据** **Step2: 正则分组匹配** 回答: **Step3: 格式转换** **最终交付要求** **习题2 (进阶)** **参考** ...

  8. Java 正则表达式(深度长文)

    目录 一.正则表达式 二.正则表达式的底层实现 1.matcher.find() 2.matcher.groups() 三.正则表达式的语法 1.正则转义符 2.正则表达式支持字符 3.捕获组(cap ...

  9. 理论+实操:shell 变成之正则表达式与文件处理器

    文章目录 一 : 正则表达式 1.1 正则表达式概述 1.2**正则表达式的定义** 1.3 正则表达式用途 二 : 基础正则表达式(grep) 2.1**基础正则表达式示例** 2.1.1 查找特定 ...

最新文章

  1. mysql 执行cmd,mysql命令行中执行sql的几种方式总结
  2. 每日站会要关注团队目标-Scrum中文网
  3. 推荐一个很牛逼的 Github 项目:本人历时半年完成的【Java 面试 + Java 后端技术学习指南】,已拿大厂offer
  4. MEGA 视频目标检测 数据集 : ILSVRC2015 VID 说明
  5. 题解 P4779 【【模板】单源最短路径(标准版)】
  6. html5后代选择符,css选择符有哪些?哪些属性可以继承?
  7. Nacos源码更服务列表
  8. jq之fadeOut()
  9. php __FILE__和$_SERVER['SCRIPT_FILENAME']区别
  10. Java中Math对象的属性与方法
  11. C++语言学习(十六)——多继承
  12. FastAPI获年度第一新兴框架,2021年最受欢迎的TOP 100开发工具出炉
  13. et结波导口转换_UHF宽带同轴-矩形波导转换器新结构
  14. 国内外优秀计算机视觉团队汇总(2020)
  15. 无显示器主机配置服务器
  16. 如何获取TouchSlop和源码浅析
  17. Log4j2漏洞发展历程及解决方案
  18. 怎样查询本机ip地址?如何利用花生壳获取外网IP教程
  19. javaweb出现Exception invoking method manageApp java.lang.IllegalStateException: ContainerBase.addChild
  20. Hive Sql 分析实例: 淘宝消费者行为分析

热门文章

  1. Android 屏幕录制GIF脚本
  2. Android Binder 分析——原理
  3. Android Studio系列(二)使用Android Studio开发/调试整个android系统源代码(不定时更新)
  4. Linux kernel 3.10内核源码分析--slab原理及相关代码
  5. python空气质量分析报告_Python数据可视化:2018年北上广深空气质量分析
  6. JZOJ 3418. 【NOIP动态规划专题】选课
  7. mathematica 可编辑pdf_Mathematica学习笔记[1]
  8. QMetaMethod 获取成员函数的元信息
  9. 数据挖掘——我们能从股市数据得出什么,以及一些算法
  10. hust1344(阶层问题+暴力)