请问在javascript中怎样得到某字符再串中出现的次数?

faffy 2002-10-25 09:42:51
如a在agygagha中的个数

thx
...全文
57 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushuiwuhen 2002-10-25
  • 打赏
  • 举报
回复
IE5.5以下用
<script>
var thestr="a1[b]a2[b]centerb2[/b]b1[/b]";
function qswhUBB(str){
var reg=/(\[b\])([^[]*)(\[\/b\])/gi,i=0;
while(str.match(reg))str=str.replace(reg,"<b>$2</b>");
return str;
}
alert(qswhUBB(thestr));
</script>
Lostinet 2002-10-25
  • 打赏
  • 举报
回复
var thestr="a1[b]a2[b]centerb2[/b]b1[/b]";
function NormalUBB(str)
{
if(typeof(str)!="string")str=str+"";
str=str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>");
return str;
}
function LostinetUBB(str)
{
if(typeof(str)!="string")str=str+"";
str=str.replace(
/(\[b\])(.*)(\[\/b\])/gi,
function(str,pos,raw)
{
return LostinetUBB(
str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>")
);
}
);
return str;
}
alert(NormalUBB(thestr));
alert(LostinetUBB(thestr));
Lostinet 2002-10-25
  • 打赏
  • 举报
回复
var thestr=hi.value;
function NormalUBB(str)
{
if(typeof(str)!="string")str=str+"";
str=str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>");
return str;
}
function LostinetUBB(str)
{
if(typeof(str)!="string")str=str+"";
str=str.replace(
/(\[b\])(.*)(\[\/b\])/gi,
function(str,pos,raw)
{
return LostinetUBB(
str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>")
);
}
);
return str;
}
alert(NormalUBB(thestr));
alert(LostinetUBB(thestr));
qiushuiwuhen 2002-10-25
  • 打赏
  • 举报
回复
replace中用function要求版本5.5,所以我一般不用
qiushuiwuhen 2002-10-25
  • 打赏
  • 举报
回复
<script>
var str="agygagha"
r=str.split("a")
alert(r.length-1)
</script>


Lostinet 2002-10-25
  • 打赏
  • 举报
回复
function replaceCallback(strFound,pos,strRaw)
{
var quots=[
{l:'(',r:")"},
{l:'[',r:"]"},
{l:'{',r:"}"}
];
var quot=quots[parseInt(strFound)%quots.length];
return quot.l+strFound+quot.r;
}
var str="9bJ47mwi8zchpq9N";
alert(str.replace(/[0-9]/g,replaceCallback));
alert("0123456789".replace(/[0-9]/g,replaceCallback));


不够帖了。。谁回复以下?
希默软件 2002-10-25
  • 打赏
  • 举报
回复
Reve(仨仁仕)的确出招很怪异
Lostinet 2002-10-25
  • 打赏
  • 举报
回复
function replaceCallback(strFound,pos,strRaw)
{
alert("在"+strRaw+"中\n第"+pos+"字符中[0,length)\n找到"+strFound);
}
var str="9bJ47mwi8zchpq9N";
str.replace(/[0-9]/g,replaceCallback);
Lostinet 2002-10-25
  • 打赏
  • 举报
回复
学习。
希默软件 2002-10-25
  • 打赏
  • 举报
回复
<script>
var str="agygagha"
r=str.match(/a/g)
alert(r.length)
</script>
Reve 2002-10-25
  • 打赏
  • 举报
回复
<script>
var count = 0;
var str = "afifafgoaafda";
str.replace(/a/g, function() { count ++; });
alert(count);
</script>
Lostinet 2002-10-25
  • 打赏
  • 举报
回复
我的方法是从最外面开始的。
而你的方法是从里面开始的。
对于不规范的UBB文本,你的结果和我的结果会不同。
当然对于常规的概念,你的解析方法比我的好。
-------
对于我的方法,这个也是个简单的开始。
事实上,
function(str,pos,raw)
{
return LostinetUBB(
str.replace(/(\[b\])(.*)(\[\/b\])/gi,"<b>$2</b>")
);
}
里不应该使用str.replace了。
如果函数里面能接受到/(\[b\])(.*)(\[\/b\])/gi里的匹配就好了。

87,964

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧