加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

JavaScript中常用的正则表达式日常整理(全)

发布时间:2016-11-29 03:31:47 所属栏目:大数据 来源:站长网
导读://校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉

应该可以把第一个点“.”之前的所有单词字符替换为test就可以了。我写的正则如下:

lt;script type="text/javascript"gt; 
var str = "infomarket.php#63;id=197"; 
var reg = /^w*/ig; 
//匹配字符串开头的任意个单词字符 
str = str.replace(reg,'test'); 
document.write(str); 
lt;/scriptgt; 

原帖的有点复杂,没太看明白。

只匹配中文的正则表达式

来源:关于上传的时候,只能选择中文名称的图片(是否可以用toASCII方法呢?)

前两天看的《JavaScript开发王》里恰好有中文的unicode范围,正则如下:

/[u4E00-u9FA5uf900-ufa2d]/ 写了一个简单的测试,会把所有的中文替换成“哦”。

lt;script type="text/javascript"gt; 
var str = "有中文#63;and English."; 
var reg = /[u4E00-u9FA5uf900-ufa2d]/ig; 
str = str.replace(reg,'哦'); 
document.write(str); 
lt;/scriptgt;

返回字符串的中文字符个数

来源:有没返回中文字符字节的函数!

一般的字符长度对中文和英文都是不分别的 如JS里的length,那么如何返回字符串中中文字符的个数呢?guoshuang老师在原帖中给出了解决方案,我又没看懂……

不过我自己也想到了一个办法:先去掉非中文字符,再返回length属性。函数以及测试代码如下:

lt;script type="text/javascript"gt; 
function cLength(str){ 
var reg = /[^u4E00-u9FA5uf900-ufa2d]/g; 
//匹配非中文的正则表达式 
var temp = str.replace(reg,''); 
return temp.length; 
} 
var str = "中文123"; 
document.write(str.length+'lt;br /gt;'); 
document.write(cLength(str)); 
lt;/scriptgt;

结果:

5

2

中文两个,数字三个,正确。

下面的测试也正确。

var str = "中文123tets@#!#%$#[][{}"; 
document.write(str.length+'lt;br /gt;'); 
document.write(cLength(str));

正则表达式取得匹配IP地址前三段

来源:如何用正则取IP前3段

192.168.118.101,192.168.118.72, 192.168.118.1都替换成:192.168.118

只要匹配掉最后一段并且替换为空字符串就行了,正则如下:

/.d{1,3}$/ 匹配结尾的.n,.nn或者.nnn。

测试代码如下:

function replaceReg(reg,str){ 
return str.replace(reg,'') 
} 
var reg = /.d{1,3}$/; 
var str = '192.168.118.101'; 
var str2 = '192.168.118.72'; 
var str3 = '192.168.118.1'; 
document.write(replaceReg(reg,str)+'lt;br /gt;'); 
document.write(replaceReg(reg,str2)+'lt;br /gt;'); 
document.write(replaceReg(reg,str3)+'lt;br /gt;'); 

相似的有,这个帖子里有一个验证IP地址的方法:求检验MAC地址的正则表达例子

匹配lt;ulgt;与lt;ulgt;之间的内容
来源:请教个正则的小问题吧
lt;ulgt;safsflt;ulgt;safsflt;/ulgt;lt;ulgt;safsflt;/ulgt;lt;/ulgt;

用正则可以得到 lt;ulgt;起到下个lt;ulgt; 之间的内容。

正则如下:

/lt;ulgt;[sS]+#63;lt;ulgt;/i 首先匹配两侧的ul标签,中间的[sS]+#63;可以匹配一个或者多个任意字符,一定要非贪婪,否则会匹配lt;ulgt;safsflt;ulgt;safsflt;/ulgt;lt;ulgt;。

用正则表达式获得文件名

来源:C:06.jpg

c:imagestupian06.jpg

可能是直接在盘符根目录下,也可能在好几层目录下,要求替换到只剩文件名。

xlez的正则如下:

/[^/]*[/]+/g 首先匹配非左右斜线字符0或多个,然后是左右斜线一个或者多个。形如“xxx/”或者“xxx”或者“/”或者“”

函数以及测试代码:

lt;script type="text/javascript"gt; 
function getFileName(str){ 
var reg = /[^/]*[/]+/g; 
//xxx或者是xxx/ 
str = str.replace(reg,''); 
return str; 
} 
var str = "c:imagestupian06.jpg"; 
document.write(getFileName(str)+'lt;br /gt;'); 
var str2 = "c:/images/tupian/test2.jpg"; 
document.write(getFileName(str2)); 
lt;/scriptgt; 

注意,需要转义。

绝对路径变相对路径

来源:讨论一个正则

将lt;IMG height="120" width="800" src="http://23.123.22.12/image/somepic.gif"gt;转换为:lt;IMG height="120" width="800" src="/image/somepic.gif"gt;。

其中网址可能改变,例如http://localhost等等。

cloudchen的正则:

/http://[^/]+/ 首先是http://,然后[^/]+找过1个或者多个非/字符,因为遇到第一个/表示已经到目录了,停止匹配。

测试代码如下:

lt;script type="text/javascript"gt; 
var str = 'lt;IMG height="120" width="800" src="http://23.123.22.12/image/somepic.gif"gt;'; 
var reg = /http://[^/]+/; 
str = str.replace(reg,""); 
alert(str) 
lt;/scriptgt; 

用户名正则

来源:求正则,急急呀!!

用于用户名注册,,用户名只 能用 中文、英文、数字、下划线、4-16个字符。

hansir和解决方案弄成正则:

/^[u4E00-u9FA5uf900-ufa2dw]{4,16}$/ 中文字符或者单词字符,4到16个。实现4到16结成到正则里的关键就是开始^和结束$,这就等于整个字符串只能有这些匹配的内容,不能有多余的。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读