测试代码var frdlist = new Array();//存储所有好友资料
var taara = new Array();
//当前好友列表页号
var curPageno = 1;$(document).ready(
loadEvents
);//窗体加载时启动的方法
function loadEvents1(){//
}//查询指定的好友对象是否在好友列表中
function isInFRDlist(arr,frd1){
for(var i=0;i<arr.length;i++){
if(arr[i].id == frd1.id){
return true;
}
}
return false;
}//从好友列表中删除指定的好友
function delFormFRDlist(arr,frd1){
var array = new Array();
for(var i=0;i<arr.length;i++){
if(arr[i].name != frd1){
array.push(arr[i]);
}
}
return array;
}//显示已选中的好友
function showSelectedFRDs(){//
var tabInnerText = "";
k += 1;
}
tabInnerText += "</tr>";
}

tabInnerText += "</table>";
$("#frdlist").html(tabInnerText);


$("div.uc_msg_frd_list_item_selected").each(
function(){
//鼠标进入:改变底色状态
$(this)[0].onmouseover = function(){
$(this).css("background-color","#6FB0EC");
};
//鼠标移除:改变底色状态
$(this)[0].onmouseout = function(){
$(this).css("background-color","#1B75C7");
}

};
}
);}//生成所有好友详细信息列表
function loadAllFRDsDetail(){//
taara = new Array(); var frdlistelenotreal = <cfoutput>#SerializeJSON(test)#</cfoutput> ;

var frdlistnotreal = eval(frdlistelenotreal);
 
for(var p in frdlistelenotreal)
{

}
}
}

//计算分页
var pagecount = 0;
if(taara.length%20>0){
pagecount = taara.length/20 + 1;
}else{
pagecount = taara.length/20;
}

//生成分页信息
var frdsPagenationhtml = "";

for(var i=1;i<=pagecount;i++){
frdsPagenationhtml += "<a style='margin-left:10px;' href='javascript:showAllFRDs(" + i + ")'>" + i + "</a>";
}

$("#frdsPagenation").html(frdsPagenationhtml);
}
function showAllFRDs(pageno){// frdlist = delFormFRDlist(frdlist,frd);
};
}
);
}
function showUnSelectedFRDs(){//
var array = taara;


for(var i=0;i<taara.length;i++){
if(frdlist[i]){
array = delFormFRDlist(array,frdlist[i].name);
}
} var tabInnerText = "";
tabInnerText += "<table>";
var k = 0;
for(var i=1;i<5;i++){
tabInnerText += "<tr>";
for(var j=1;j<=5;j++){
if(array[k]==null){
//tabInnerText += "<td><div class=\"uc_msg_frd_list_item_disabled\"><div><img src=\"\" /></div><div>没有了</div></div></td>";
}
else{
tabInnerText += "<td><div class=\"uc_msg_frd_list_item\"><div><img src=\"" + array[k].img + "\"  width=32 height=32/></div><div>" + array[k].name + "</div></div><input type='hidden' name='" + array[k].id + "' value='" + array[k].id + "'></td>";
}
k += 1;
}
tabInnerText += "</tr>";
}

tabInnerText += "</table>";
$("#frdlist").html(tabInnerText);


$("div.uc_msg_frd_list_item_selected").each(
function(){
$(this)[0].onmouseover = function(){
$(this).css("background-color","#6FB0EC");
};

$(this)[0].onmouseout = function(){
$(this).css("background-color","#1B75C7");
}
}
);
}
<!--6.3旧版用户输入提示-->function getElementPosition(obj){ //
var oTmp = obj; 
if(!oTmp||(typeof(oTmp.offsetLeft) == "undefined") ||(typeof(oTmp.offsetTop) == "undefined") ||!oTmp.tagName){ 
return null; 


var pt = new Point(0,0); 

do{ 
pt.x += oTmp.offsetLeft; 
pt.y += oTmp.offsetTop; 
oTmp = oTmp.offsetParent; 
} while(oTmp.tagName!="BODY"); 

return pt; 
} function Point(iX, iY){ //
this.x = iX; 
this.y = iY; 
} function frd(pid,pname,pimg){//
this.id = pid;
this.name = pname;
this.img = pimg;

this.toString = function (){
return this.id + "," + this.name + "," + this.img;
}
}function showRFTip(src){//
document.getElementById("recentFTest").style.top = getElementPosition(src).y + 16 + "px";
document.getElementById("recentFTest").style.left = getElementPosition(src).x + "px";
$("#recentFTest").fadeIn("slow");
}var isTyping = false;function acFocus(src){//
if(!isTyping){
document.getElementById("acTip").style.top = getElementPosition(src).y + 25 + "px";
document.getElementById("acTip").style.left = getElementPosition(src).x + "px";
$("#acTip").fadeIn("fast");
}
}function acBlur(){//
pointer = -1;
if(!isTyping){
$("#acTip").fadeOut("fast");

}else{
$("#acResWindow").fadeOut("fast");
}

isTyping = false;
}
function acKP(src){
//down
if(event.keyCode == 40){
if(res!=null&&res.length>=0){
if(pointer != res.length-1){
;i++){
if(i==pointer){
$("<div style='color:red'>"+res[i]+"</div>").appendTo($("#acResWindow"));
}else{ }
}
else
//up
if(event.keyCode == 38){
if(res!=null&&res.length>=0){
if(pointer == 0){
pointer = res.length-1;
}else{
pointer -= 1;
}
}

$("#acResWindow").html('');
for(var i=0;i<res.length;i++){
if(i==pointer){
$("<div style='color:red'>"+res[i]+"</div>").appendTo($("#acResWindow"));
}else{
$("<div>"+res[i]+"</div>").appendTo($("#acResWindow"));
} }
else if(event.keyCode==13){
("acResWindow").style.left = getElementPosition(src).x + "px";
$("#acTip").fadeOut("fast");
$("#acResWindow").fadeIn("fast");
}
}
);
}
}
}
}function deleteFRD(src){
toSomeOneList = deleteElement(toSomeOneList,src);
listFRDs();
}function listFRDs(){
showAllFRDs(1);<!--- $('#frdlist').html('');
for(var i=0;i<toSomeOneList.length;i++){
$("<span style='border:1px #CC0033 dashed; margin-left:5px;'>" +
trim(toSomeOneList[i]) +
"<span style='margin-left:10px; background-color:#FFCCCC; cursor:pointer;' onclick='deleteFRD(\"" +
trim(toSomeOneList[i]) +
"\");'>×</span></span>")
.appendTo("#frdlist");
}--->

}
function sendMSG(){
var title = $("#uc_msg_Subject").val();
var message = $("#uc_msg_Message").val();

var arrID = new Array();
var arrNames = new Array();

for(var i = 0;i < frdlist.length;i++){
arrID.push(frdlist[i].id);
arrNames.push(frdlist[i].name);
}

if(title.length==0){
alert("请填写消息标题。");
$("#uc_msg_Subject").focus();
return false;
} if(message.length==0){
alert("请填写消息内容。");
$("#uc_msg_Message").focus();
return false;
} if(frdlist.length!=0){
$("input").attr("disabled",true);
$("textarea").attr("disabled",true);
alert(arrID);
$.post(
'uc_ajax_handler.cfm',
{
action:'sendMSG',
toList:arrID.toString(),
toNamelist:arrNames.toString(),
title:title,
message:message,
ssminocache:new Date()
},
function(msg){
if(trim(msg)=="Y"){
alert("发送成功!");
//清理资源
$("input").attr("disabled",false);
$("textarea").attr("disabled",false);
$("#uc_msg_Subject").val("");
$("#uc_msg_Message").val("");

frdlist = new Array();
showAllFRDs(1);
}else{
alert(trim(msg));
}
}
);
}else{
alert("您尚未选择任何好友!");
return false;
}
}
</script>

解决方案 »

  1.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无??文档</title>
    <script type="text/javascript">
    function show(){
    var str=document.getElementById("txt1").value;
    var p=/function +\w+ *(?:\([\w ,]*\))/ig;
    var matchs=str.match(p);
    document.getElementById("txt2").value=matchs.join("\n").replace(/function/gim,"");
    document.title=matchs.length;
    }
    </script>
    </head><body>
    <textarea id="txt1" style="width:100%;"></textarea>
    <input type="button" onclick="show()"/>
    <br />
    <textarea id="txt2" style="width:100%;height:800px;"></textarea>
    </body>
    </html>直接处理结果
      

  2.   

    你还是捕获吧^^,虽然IE的正则引擎用的是NFA。
      

  3.   

    貌似是吧。。白猪同学(头像^^)
    = =不然我就发出来了逆向环视这个锚点标记比较强大
    另外,部分引擎貌似不支持在逆向环视里写长度不确定的字符
    虽然.net的支持
    不过还是建议改成
    (?<=\bfunction\b)
      

  4.   

    (?<=\bfunction\b)
    这个没错\b的用法:匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
      

  5.   

    \B  匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 理解这些基础的,你的正则就好写了
      

  6.   

    好的谢谢各位.
    解除心中疑点.. 以为js有什么方法可以代替这种写法的 呵呵(?<=.....)