正则表达式
发布时间:2020-12-13 22:24:48 所属栏目:百科 来源:网络整理
导读:// 正则表达式创建: var reg=/ 表达式 / 修饰符 var reg= new RegExp( "表达式" )修饰符: g :全局匹配(找出所有,而不是第一个就结束) i :模糊大小写 m :多行匹配表达式:直接量: 0 - - null n- - 换行符r- - 回车符f- - 换页符t- - 制表符字符类
//正则表达式
创建: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.aspzz.cn/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=/bw+b/g
var d=function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);
}
var c=name.replace(b,d)
alert(c)
//价格翻10倍
var 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'));
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |