JS中的正则表达式

来源:互联网 发布:mac系统怎么建立文件夹 编辑:程序博客网 时间:2024/06/05 10:06

Js中常见的对字符串进行操作的方法有:

search(‘str’)搜索位置,当没有找到的时候,返回值为-1.
substring(2,5)获得第二到第五个位置的字符串(不包括结束位置五的字符!)
substring(2)从第二个位置开始往后取。
charAt()获取某个位置的字符串。
split(‘-’)切分,将字符串以‘-’符号切分成数组。
match( )将所有符合要求的提取出来。

正则表达式有两种表示方式:

一、js风格——var re =new RegExp(‘a’,‘i’)
二、perl风格——/a/i

元字符(方括号):

[abc]pc——(abc,bpc,cpc)
[a-z],[0-9]都是范围
[^a-z]除了字母
[^a-z0-9]除了字母和数字

正则表达式常用的转义字符有:

i 为忽略大小写 g 为找到全部

.(点)——任意字符,但是一般很少使用,杀伤力太大。
\d——数字
\w——英文,数字和下划线
\s——空白字符
\D——[^1-9]非数字
\W——[^a-z0-9]非英文、数字或下划线
\d——代表d字母。

量词:

{n}:正好出现n次。比如\d{8},则为出现8次数字,[1-9]\d{7}则为第一位为1-9,后面七位为数字。
{n,m}最少出现n次,最多出现m次。
{n,}最少n次,最多不限。
?={0,1} 可有可无。例如区号,(0\d{2,3}-)?[1-9]\d{7}

var str = “13 ,24 ,5678”
str.match(re)
re=/\d/g 结果为1,3,2,4,5,6,7,8因为只找了一位数字。
re=/\d\d/g结果为13,24,56,78,是找了两位数字
re=/\d+/g结果为13 ,24 ,5678,加号 代表若干,即多少都可以。

replace方法可以用来进行替换:
str.replace(/a/g,”*”)即所有的a都替换成星号。

过滤HTML标签:

re=/[^<>]+/g 意思为 在尖括号内除了<>之外。

test方法校验:

re.test(oTxt.value)
在test方法中,只要有一部分而不是全部符合 ,其返回值就为true。
所以解决办法就是在正则表达式首尾加上^和re=\w+@[az09]+.[az]