javascript正则中使用[\s\S]*用来匹配任意字符(包括换行符)的方法不起作用
例如下面是匹配test.html页面中的body内容,如果不把内容中的换行符去掉,匹配不到内容。但如果用[\s\S]*的方法来匹配任意字符,在js里还不起作用。请问在js...
例如下面是匹配test.html页面中的body内容,如果不把内容中的换行符去掉,匹配不到内容。
但如果用[\s\S]*的方法来匹配任意字符,在js里还不起作用。
请问在js中有什么方法匹配任意字符,包括换行。
<script type="text/javascript">
// 需要引入jQuery
$.get("test.html",function(html){
//html = html.replace(/[\r\n]+/g,''); // 需要把换行符替换掉,下面的正则才能匹配到内容
var bodyPat = new RegExp('<body[^>]*>(.*?)<\/body>','i');
var matchArr = html.match(bodyPat);
console.dir(matchArr);
});
</script> 展开
但如果用[\s\S]*的方法来匹配任意字符,在js里还不起作用。
请问在js中有什么方法匹配任意字符,包括换行。
<script type="text/javascript">
// 需要引入jQuery
$.get("test.html",function(html){
//html = html.replace(/[\r\n]+/g,''); // 需要把换行符替换掉,下面的正则才能匹配到内容
var bodyPat = new RegExp('<body[^>]*>(.*?)<\/body>','i');
var matchArr = html.match(bodyPat);
console.dir(matchArr);
});
</script> 展开
5个回答
展开全部
正则表达式可以用.*匹配任意除换行之外的字符。但如果内容中包含任意多个换行怎么匹配?用.*是匹配失败的。但可以用[\s\S]*?。
\s是匹配所有空白字符,\S是匹配所有非空白字符,那么[\s\S]这个组合就可以匹配所有字符了。
但是换行符是匹配不到的:
//-- 通过正则表达式来替换换行符
var regRN = /\r\n/g;
str = str.replace(regRN,"<br />");
//-- 其他场景(分别替换\r和\n)
var regR = /\r/g;
var regN = /\n/g;
str = str.replace(regR,"\\r").replace(regN,"\\n");
\s是匹配所有空白字符,\S是匹配所有非空白字符,那么[\s\S]这个组合就可以匹配所有字符了。
但是换行符是匹配不到的:
//-- 通过正则表达式来替换换行符
var regRN = /\r\n/g;
str = str.replace(regRN,"<br />");
//-- 其他场景(分别替换\r和\n)
var regR = /\r/g;
var regN = /\n/g;
str = str.replace(regR,"\\r").replace(regN,"\\n");
展开全部
用来匹配任意字符的,你完全可以不用[\s\S]的,直接用 '.' 就可以了!
var a = 'asdfsdfsdfsdfs\nasdfwefsadfasdfsdfsadfs';
var b = a.replace(/./g,'3');
alert(b); //这样就可以了。
如果你想替换回车,可以用[\w\W] 或者[\s\S], 这个g是不可以省略的。
var a = 'asdfsdfsdfsdfs\nasdfwefsadfasdfsdfsadfs';
var b = a.replace(/[\w\W] /g,'3');
alert(b); //这样就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var bodyPat = new RegExp('<body[^>]*>([\\s\\S]*?)<\\/body>','i');
new RegExp的时候用两个斜杠
如果没有字符串链接,直接用下面的
var bodyPat = /<body[^>]*>([\s\S]*?)<\/body>/i;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var bodyPat = new RegExp('<body[^>]*>(.*?)<\/body>','im');
试一下,其他不要该。
追问
不行的,添加多行修正符m也不行。
将(.*?)换成([\s\S]*?)也不行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要用到单行模式,你百度一下,单行模式下面 .*号可以匹配换行符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询