+ -
当前位置:首页 → 问答吧 → js的惰性匹配问题

js的惰性匹配问题

时间:2011-09-21

来源:互联网

function trim(s){
var re=/^\s*(.*?)\s*$/;
//return re.exec(s)[1];
return s.replace(re,'$1');
}
alert("|"+trim(" asbc cxv ")+"|");


在这段代码中为何(.*?)匹配的不是a而是asbc cxv 。

作者: sunxingzhesunjinbiao   发布时间: 2011-09-21

那你忽视了*号的作用了 
*表示匹配. 0-N次
直到遇到\s空格为止

如果不加问号
遇到\s也会一直匹配 直到遇到最后一个\s 空格为止
此时$1是 asbc cxv

作者: q107770540   发布时间: 2011-09-21

想匹配$1为a的话
可以这样:
/\s*(\S+?)\s*/

作者: q107770540   发布时间: 2011-09-21

相关阅读 更多