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

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

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

这个正则比较简单,写了一个测试

lt;script type="text/javascript"gt; 
function isDigit(str){ 
var reg = /^d*$/; 
return reg.test(str); 
} 
var str = "7654321"; 
document.write(isDigit(str)); 
var str = "test"; 
document.write(isDigit(str)); 
lt;/scriptgt;

电话号码正则

来源:想问一下关于电话号码的正则判断

:求一个验证电话号码的JS正则

/^d{3,4}-d{7,8}(-d{3,4})#63;$/区号必填为3-4位的数字,区号之后用“-”与电话号码连接

^d{3,4}-电话号码为7-8位的数字

d{7,8}分机号码为3-4位的数字,非必填,但若填写则以“-”与电话号码相连接

(-d{3,4})#63;手机号码正则表达式
正则验证手机号,忽略前面的0,支持130-139,150-159。忽略前面0之后判断它是11位的。

cloeft的正则:

/^0*(13|15)d{9}$/ ^0*匹配掉开头任意数量的0。

由于手机号码是13任意数字9位,和15任意数字9位,所以可以用(13|15)d{9}匹配。

测试代码如下:

function testReg(reg,str){ 
return reg.test(str); 
} 
var reg = /^0*(13|15)d{9}$/; 
var str = '13889294444'; 
var str2 = '12889293333'; 
var str3 = '23445567'; 
document.write(testReg(reg,str)+'lt;br /gt;'); 
document.write(testReg(reg,str2)+'lt;br /gt;'); 
document.write(testReg(reg,str3)+'lt;br /gt;');

nbsp;使用正则表达式实现删除字符串中的空格:

来源:请问js中有没有去掉空格的函数

代码以及测试代码如下:

lt;script type="text/javascript"gt; 
//删除字符串两侧的空白字符。 
function trim(str){ 
return str.replace(/^s+|s+$/g,''); 
} 
//删除字符串左侧的空白字符。 
function ltrim(str){ 
return str.replace(/^s+/g,''); 
} 
//删除字符串右侧的空白字符。 
function rtrim(str){ 
return str.replace(/s+$/g,''); 
} 
//以下为测试代码 
var trimTest = " 123456789 ";
//前后各有一个空格。 
document.write('length:'+trimTest.length+'lt;br /gt;');
//使用前 
document.write('ltrim length:'+ltrim(trimTest).length+'lt;br /gt;');
//使用ltrim后 
document.write('rtrim length:'+rtrim(trimTest).length+'lt;br /gt;');
//使用rtrim后 
document.write('trim length:'+trim(trimTest).length+'lt;br /gt;');
//使用trim后 
lt;/scriptgt; 

测试的结果如下:

length:11
ltrim length:10
rtrim length:10
trim length:9 限制文本框只能输入数字和小数点等等

来源:文本框输入限制的问题????

只能输入数字和小数点

var reg = /^d*.#63;d{0,2}$/ 开头有若干个数字,中间有0个或者一个小数点,结尾有0到2个数字。

只能输入小写的英文字母和小数点,和冒号,正反斜杠(:./)

var reg = /[a-z./:]+/; a-z包括了小写的英文字母,.是小数点,/和分别是左右反斜线,最后是冒号。整个组成一个字符集和代码任一均可,最后在加上+,1或者多个。

替换小数点前内容为指定内容

来源:求一正则表达式!

请问 怎么把这个字符串的小数点前面的字符替换为我自定义的字符串啊?

例如:infomarket.php#63;id=197 替换为 test.php#63;id=197

应该可以把第一个点“.”之前的所有单词字符替换为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结成到正则里的关键就是开始^和结束$,这就等于整个字符串只能有这些匹配的内容,不能有多余的。

函数和测试代码如下:

lt;script type="text/javascript"gt; 
function isEmail(str){ 
var reg = /^[u4E00-u9FA5uf900-ufa2dw]{4,16}$/; 
return reg.test(str); 
} 
var str = '超级无敌用户名regExp'; 
var str2 = '捣乱的@'; 
var str3 = '太短' 
var str4 = '太长longlonglonglonglonglonglonglong' 
document.write(isEmail(str)+'lt;br /gt;'); 
document.write(isEmail(str2)+'lt;br /gt;'); 
document.write(isEmail(str3)+'lt;br /gt;'); 
document.write(isEmail(str4)+'lt;br /gt;'); 
lt;/scriptgt; 

匹配英文地址

来源:-求助- 正则问题

规则如下:

包含 "点", "字母","空格","逗号","数字",但开头和结尾不能是除字母外任何字符。

[.a-zA-Zs,0-9]这个字符集就实现了字母,空格,逗号和数字。最终正则如下:

(编辑:PHP编程网 - 湛江站长网)

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