正则表达式

//正则表达式
创建:var reg=/ 表达式 / 修饰符
var reg=new RegExp("表达式")
修饰符:
g:全局匹配(找出所有,而不是第一个就结束)
i:模糊大小写
m:多行匹配
表达式:
直接量:
\0-->null
\n-->换行符
\r-->回车符
\f-->换页符
\t-->制表符
字符类:
[....] -->任意括号内字符
[^...] -->任意非括号内字符
\w -->任意字符
\W -->任意非字符
\D -->任意非数字
\d -->任意数字
\S -->任意非空白字符
\s -->任意空白字符
上述表示:目标字符串存在其中任意一个字符即满足条件
重复:
{n}     -->n个相同的该字符
{n,m}   -->n到m个相同的该字符
{n,}    -->多于n个相同的该字符
+       -->多于1个该字符
?       -->1个或者0个该字符
*       -->0个或者多个该字符
选择与分组:
选择项、子表达式分组、引用前一子表达式
|   -->分隔选择项,表示为或的意思
()  -->分组,组合子表达式
()  -->定义子模式,抽取目标字符串中匹配到的内容(使用" $数字 "引用其值)
()  -->同一正则表达式的后部引用前面的表达式(带数字的引用)
通过“\数字” 的方式来引用,数字代表第几个子表达式,子表达式可以嵌套,故次序的界定以左半括号为准。
(?: )   -->不带数字的引用,仅用于分组
锚字符:匹配合法位置
\b单词\b -->匹配单词边界(\w之前的字符) 
\^       -->匹配字符串开始(多行时一行的开始)
\$      -->匹配字符串结束(多行时一行的结束)

//(?!内容)
var reg=/Java(?!Script)([A-Z]\w*)/
    alert(reg.test("JavaScript"))  
//Java紧跟一个大写字母开头后跟若干个字符,但是Java后面不能紧跟字符串"Script"
//(?=内容)
var reg=/Java(?!Script)([A-Z]\w*)/
    alert(reg.test("JavaScript"))  
//Java紧跟一个大写字母开头后跟若干个字符,但是Java后面必须紧跟字符串"Script"
//模式匹配方法
var b="my IP6 number is 136 8888 8888 how is that"
var reg=/\d/ // /\d+/
" ".search(reg)-->返回匹配成功的起始索引值,匹配不成功返回-1
alert(b.search(reg))
" ".match(reg)-->返回由匹配成功的内容组成的数组(\d \d+ 结果是不一样的)
alert(b.match(reg))
" ".replace(reg)-->返回匹配成功的起始索引值,匹配不成功返回-1

//replace方法比较经典的例子
//参考http://www.jb51.net/article/43949.htm
//替换出现的所有空格
var name="this is my book"
var cont=name.replace(/ /g,"-")
alert(cont)
//替换出现的""为()
var name='this toy called "tommy\'s book",dont\'you like it,"isn\'t you?"'
var cont=name.replace(/"(.*)",(.*)"(.*)"/g,"($1),$2($3)")
alert(cont)
//首字母设置为大写
var name="I go to Bookshop to By book"
var b=/\b\w+\b/g
var d=function(word){
    return word.substring(0,1).toUpperCase()+word.substring(1);
}
var c=name.replace(b,d)
alert(c)
//价格翻10var name="Books worth 10$,but you give me 5$,you should give me XXX$ for panity"
var b=/\d+/g
var d=function(word){
    return word*10
}
alert(name.replace(b,d))

// 替换双引号括起来的内容
name = '"a", "b"'; 
name.replace(/"([^"]*)"/g, "'$1'"); 
//替换存在$符的内容
var str="fsaf$\$a$assdfdasfa$$a$dsfadsf"; 
var strr='\$'+'a'+'\$'; 
var name = '"a", "b"'; 
var reger=new RegExp("[\$]a[\$]","gm"); 
alert(str.replace(/\$+a\$/gm,'555888')); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值