var html = "<p><a href='http://www.cnblogs.com/rubylouvre/'>Ruby Louvre</a>by <em>司徒正美</em></p>";
var text = html.replace(/<(?:.|\s)*?>/g, "");
alert(text);
中的星号后为什么又多一个问号, 这个问号表示什么意思

解决方案 »

  1.   

    还有,
    str=str.replace(/(^\s*)|(\s*$)/g, "")
    听说这个功能是去除首尾空格,但(^\s*)这个中的^是代表开始还是非
      

  2.   


    1.属于贪婪模式的量词,也叫做匹配优先量词,包括:“{m,n}”、“{m,}”、“?”、“*”和“+”。
    在匹配优先量词后加上“?”,即变成属于非贪婪模式的量词,也叫做忽略优先量词,包括:“{m,n}?”、“{m,}?”、“??”、“*?”和“+?”。
    2.  功能是 去除首位 ,所以  (^\s*)代表 开头是空格的字符串,(\s*$)代表结尾是空格的字符串  ^只有在[]的开始位置时才代表  取反
      

  3.   

    表示最少匹配
    比如/^a.*/匹配aaabb  则匹配到aaabb
    而/^a.*?/匹配aaabb  只匹配则匹配a
      

  4.   


    那么var html = "<p><a href='http://www.cnblogs.com/rubylouvre/'>Ruby Louvre</a>by <em>司徒正美</em></p>";
    var text = html.replace(/<(?:.|\s)*?>/g, "");
    alert(text);中若正则表达式变成<(?:.|\s)*>/g为什么却显示为空?
      

  5.   

    加了?匹配到第一个>结束
    没加?匹配到最后一个>结束
      

  6.   

    但后面已经有一个g了喔,怎么/<(?:.|\s)?>/g这样却输出<a href='http://www.cnblogs.com/rubylouvre/'>Ruby Louvre</a>by <em>司徒正美</em></p>
      

  7.   

    /<(?:.|\s)?>/g
    这里?是值 匹配 有 或 没有即
    <>
    <a>
    <p>
    < >
    这样的格式建议楼主学习下
    http://blog.csdn.net/lxcnn/category/538256.aspx  过客博客