PHP一些常用的正则表达式字符的一些转换

时间:2024-05-13 09:22:19 

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

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

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

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

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

匹配首尾空格的正则表达式: (^\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.*Math.pow(255,3))+RegExp.*Math.pow(255,2))+RegExp.*255+RegExp.*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(/(.).*/g,"") 
var re=new RegExp("["+s1+"]","g") 
var s2=s.replace(re,"") 
alert(s1+s2) //结果为:abcefgi 

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

s="http://www.9499.net/page1.htm" 
s=s.replace(/(.*\/)([^\.]+).*/ig,"") 
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,'')) 

标签:php,正则
0
投稿

猜你喜欢

  • 404页面设计一样可以闪光

    2007-08-19 15:09:00
  • Python实现自动化处理Word文档的方法详解

    2022-05-24 00:33:59
  • 详解Go程序添加远程调用tcpdump功能

    2024-05-21 10:18:45
  • 更正确的asp冒泡排序

    2024-04-22 13:04:10
  • MySQL对数据库数据进行复制的基本过程详解

    2024-01-14 09:52:40
  • 深入浅析Django MTV模式

    2021-08-18 07:55:32
  • js+ajax实现获取文件大小的方法

    2023-08-12 00:22:07
  • iframe高度自适应,兼容IE,FF

    2008-06-18 12:15:00
  • ASP初学者学习ASP指令

    2008-10-14 17:27:00
  • Python的信号库Blinker用法详解

    2021-06-23 23:23:19
  • Python基于Serializer实现字段验证及序列化

    2023-07-19 21:50:36
  • axios请求的一些常见操作实战指南

    2023-07-02 16:33:25
  • 一篇文章带你了解Python中的类

    2022-10-11 19:46:18
  • seaborn绘制双变量联合分布图示例详解

    2021-04-29 01:49:24
  • Python竟能画这么漂亮的花,帅呆了(代码分享)

    2021-02-04 15:50:00
  • setInterval 和 setTimeout 会产生内存溢出

    2008-03-08 13:10:00
  • Go语言实现彩色输出示例详解

    2023-09-14 01:19:45
  • goland中文件头自动注释的操作

    2024-05-05 09:32:50
  • 关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法

    2024-04-29 13:14:31
  • 微信支付、支付宝支付等常用第三方支付通道接口手续费对比

    2022-01-29 12:48:14
  • asp之家 网络编程 m.aspxhome.com