JavaScript中常用的正则表达式日常整理(全)
应该可以把第一个点“.”之前的所有单词字符替换为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;起到下个lt;ulgt; 之间的内容。 正则如下: /lt;ulgt;[sS]+#63;lt;ulgt;/i 首先匹配两侧的ul标签,中间的[sS]+#63;可以匹配一个或者多个任意字符,一定要非贪婪,否则会匹配lt;ulgt;safsflt;ulgt;safsflt;/ulgt;lt;ulgt;。 用正则表达式获得文件名 来源:C: 06.jpg c:imagestupian 06.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:imagestupian 06.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结成到正则里的关键就是开始^和结束$,这就等于整个字符串只能有这些匹配的内容,不能有多余的。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |