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

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)+'<br />'); document.write(testReg(reg,str2)+'<br />'); document.write(testReg(reg,str3)+'<br />');

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

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

代码以及测试代码如下:

<script type="text/javascript"> //删除字符串两侧的空白字符。 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+'<br />'); //使用前 document.write('ltrim length:'+ltrim(trimTest).length+'<br />'); //使用ltrim后 document.write('rtrim length:'+rtrim(trimTest).length+'<br />'); //使用rtrim后 document.write('trim length:'+trim(trimTest).length+'<br />'); //使用trim后 </script>

测试的结果如下:

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

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

只能输入数字和小数点

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

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

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

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

来源:求一正则表达式!

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

例如:infomarket.php?id=197 替换为 test.php?id=197

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

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

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

只匹配中文的正则表达式

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

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

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

<script type="text/javascript"> var str = "有中文?and English."; var reg = /[\u4E00-\u9FA5\uf900-\ufa2d]/ig; str = str.replace(reg,'哦'); document.write(str); </script>

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

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

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

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

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

结果:

5

2

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

下面的测试也正确。

var str = "中文123tets@#!#%$#[][{}"; document.write(str.length+'<br />'); 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。

测试代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjppzs.html