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


Posted in PHP onJuly 29, 2008

匹配双字节字符(包括汉字在内): [^\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 相关文章推荐
php session 错误
May 21 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
基于Zend的Config机制的应用分析
May 02 PHP
php输入流php://input使用浅析
Sep 02 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
php检测url是否存在的方法
Apr 14 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
May 13 PHP
PHP实现HTTP断点续传的方法
Jun 17 PHP
PHP 7的一些引人注目的新特性简单介绍
Nov 08 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
Aug 07 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 PHP
php 全文搜索和替换的实现代码
Jul 29 #PHP
PHP中$_SERVER的详细参数与说明
Jul 29 #PHP
php include的妙用,实现路径加密
Jul 29 #PHP
php5编程中的异常处理详细方法介绍
Jul 29 #PHP
php intval的测试代码发现问题
Jul 27 #PHP
php在线打包程序源码
Jul 27 #PHP
php对gzip文件或者字符串解压实例参考
Jul 25 #PHP
You might like
第九节 绑定 [9]
2006/10/09 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
javascript调试说明
2010/06/07 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
JavaScript实现左侧菜单效果
2017/12/14 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
[00:39]DOTA2上海特级锦标赛 Liquid战队宣传片
2016/03/04 DOTA
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
家具公司总经理岗位职责
2014/07/08 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
2015年学校教科室工作总结
2015/07/20 职场文书
tensorflow中的数据类型dtype用法说明
2021/05/26 Python
Nginx四层负载均衡的配置指南
2021/06/11 Servers
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技
mysql幻读详解实例以及解决办法
2022/06/16 MySQL