求一个正则表达式,
功能就是截取@后面的字符
像新浪微博的功能比如
ssn@你好 要得到“你好”
@ok 要得到“ok”就是中英文都可以的
var val="@你好"  //或是 @中国china
var patt=/(\w+)?@(\w+)$|@$/;
//var patt=/^[A-Za-z0-9\u4e00-\u9fa5]+$/; 这个不行
var chars = val.match(patt);

解决方案 »

  1.   

    <script>
        var p = /@(.*)$/;
       var arr=["11q23@1234","@中文","ssn@你好","@ok"]
       for(var i=0;i<arr.length;i++){
        document.write(arr[i].replace(" ","&nbsp;")+":"+arr[i].match(p)[1]+"<br/>");
       }
    </script>
      

  2.   

      var p = /@([\u4e00-u9fa5a-z0-9]*?)$/i;
      

  3.   

    var p = /@([\u4e00-\u9fa5a-z0-9]*?)$/i;
      

  4.   

    $String.replace(/[^@]*?@([^@]*)/gi,'$1')其实可以换个思路...用split不是更省事..
    如果有多个@,并且要获得每一个@后的字符,用split生成arr数组后,除了arr[0]外全部都是你要的结果,,
    如果只需要第一个@后的所有内容,就把除arr[0]之外的数组元素再用@字符join起来..
    如果需要最后一个@后的内容,就是arr[arr.length-1]
    这个问题用正则效率很低...
      

  5.   

    严重赞成4楼,不要问题复杂化,把String用好可以解决很多问题