js正则表达式问题 取2字符中间的字符

MyNameIsPig 2012-09-27 08:52:48
我现在有个字符串 是这样的

"<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}o\:* 400;}中间省略一万字</style><![endif]-->";


我想取<!--到-->之间的字符 用正则表达式 请问怎么取
...全文
388 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
诺维斯基 2012-09-27
  • 打赏
  • 举报
回复
function test() {
var content = "<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}o\:* 400;}中间省略一万字</style><![endif]-->";
var reg = /<!--([\s\S]+)-->/;
content = content.replace(reg, "$1");
alert(content);
}
MyNameIsPig 2012-09-27
  • 打赏
  • 举报
回复
不行啊 我这中间省略的一万字里面 啥字符都有 \r\n什么的
绿窗明月 2012-09-27
  • 打赏
  • 举报
回复
用纯正则不太好实现
var r=/<!--((.|\n)*?)-->/g,
t='<!--abc-->dsfsfdfgd<!--def-->',
result=t.match(r);
for(var i=0;result[i]!=undefined;i++){
result[i]=result[i].replace('<!--','').replace('-->','');
}
result为结果数组
001007009 2012-09-27
  • 打赏
  • 举报
回复

var str = "<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}o\:* 400;}中间省略一万字</style><![endif]-->";

// 法1
alert( str.split('<!--[if !mso]>')[1].split('<![endif]-->')[0] );

// 法2
var re = /^<!--\[if !mso\]>(.*?)<!\[endif\]-->$/;
alert( str.match(re)[1] );


参考下
MyNameIsPig 2012-09-27
  • 打赏
  • 举报
回复
在线等啊 高手在哪里

87,991

社区成员

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

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