正则表达式何解

rocsnake 2003-06-02 08:37:21
alert("01".replace(/0*/g,"p"));
alert("001".replace(/0*/g,"p"));
alert("0101".replace(/0*/g,"p"));


到底什么意思,怎么得到那样的结果
...全文
51 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnlyl 2003-06-03
  • 打赏
  • 举报
回复
上一个还是错的,再贴:
含义:用正则表达式对字符串“0101”进行0个或更多0(0*,*等价{0,})全局匹配(g决定),并在匹配位置将匹配到的字符用p替换。具体匹配过程如下:
1.用正则表达式匹配0101$,匹配到0,0用p替换(此时目标串=p101);
2.用正则表达式与剩下的101$,匹配到''空串,''用p替换,即在1前面插入p(此时目标串=pp101);
3.用正则表达式与剩下的01$,匹配到0,0用p替,(此时目标串=pp1p1);
4.用正则表达式与剩下的1$,匹配到''空串,''用p替换,即在1前面插入p(此时目标串=pp1pp1);
5.用正则表达式与剩下的$,匹配到''空串,''用p替换,即在1前面插入p(此时目标串=pp1pp1p);
再举一个例子:
alert ( "001ab001c".replace ( /(001)*/g, "p" ) ); //ppapbppcp
001ab001c$ ab0001c$  b001c$  001c$   c$   $
p     pa     pb     p    pc   p//result=ppapbppcp
001    ''     ''     001   ''   ''
cnlyl 2003-06-03
  • 打赏
  • 举报
回复
上贴中有 重贴:
含义:用正则表达式对字符串“0101”进行0个或更多0(0*,*等价{0,})全局匹配(g决定),并在匹配位置将匹配到的字符用p替换。具体匹配过程如下:<br>
1.用正则表达式匹配0101$,匹配到0,0用p替换(此时目标串=p101);<br>
2.用正则表达式与剩下的101$,匹配到''空串,''用p替换,即在1前面插入p(此时目标串=pp101);<br>
3.用正则表达式与剩下的01$,匹配到0,0用p替,(此时目标串=pp1p1);<br>
4.用正则表达式与剩下的1$,匹配到''空串,''用p替换,即在1前面插入p(此时目标串=pp1pp1);<br>
5.用正则表达式与剩下的$,匹配到''空串,''用p替换,即在1前面插入p(此时目标串=pp1pp1p);<br>

再举一个例子:<br>
alert ( "001ab001c".replace ( /(001)*/g, "p" ) ); //ppapbppcp<br>

001ab001c$ ab0001c$  b001c$  001c$   c$   $ <br>
 p     pa     pb     p    pc   p//result=ppapbppcp<br>

001    ''     ''     001   ''   ''<br>
cnlyl 2003-06-03
  • 打赏
  • 举报
回复
结果应该是:
alert("01".replace(/0*/g,"p")); //=pp1p
alert("001".replace(/0*/g,"p")); //=pp1p
alert("0101".replace(/0*/g,"p")); //pp1pp1p

含义:用正则表达式对字符串“0101”进行0个或更多0(0*,*等价{0,})全局匹配(g决定),并在匹配位置将匹配到的字符用p替换。具体匹配过程如下:
1.用正则表达式匹配0101$,匹配到0,0用p替换(此时目标串=p101);
2.用正则表达式与剩下的101$,匹配到''空串,''用p替换,即在1前面插入p(此时目标串=pp101);
3.用正则表达式与剩下的01$,匹配到0,0用p替,(此时目标串=pp1p1);
4.用正则表达式与剩下的1$,匹配到''空串,''用p替换,即在1前面插入p(此时目标串=pp1pp1);
5.用正则表达式与剩下的$,匹配到''空串,''用p替换,即在1前面插入p(此时目标串=pp1pp1p);

再举一个例子:
alert ( "001ab001c".replace ( /(001)*/g, "p" ) ); //ppapbppcp

001ab001c$ ab0001c$  b001c$  001c$   c$   $
 p     pa     pb     p    pc   p //result=ppapbppcp

001    ''     ''     001   ''   ''
fason 2003-06-02
  • 打赏
  • 举报
回复
就是替换啊,把匹配的替换为p啊
microlin 2003-06-02
  • 打赏
  • 举报
回复
那怎么会用replace替换函数的?不解!
fason 2003-06-02
  • 打赏
  • 举报
回复
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。

87,988

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧