a2b3cde11如何用js输出aabbbcdeeeeeeeeeee

tz6722033 2009-08-18 09:38:49
求助了自己写的代码 调试部不成功。
<!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=gb2312" />
<title>无标题文档</title>
</head>
<body>
<script language="javascript">
function strchange(str)
{

str1=str.split(/^[A-Z]/);

for(var i=0,i<str1.length,i++)
{
if (str1[i]="")
{
str1[i]=1;
}
}
str1.shift();

for(i=0,i<str1.length,i++)
{
s1=str.replace(str1[i],",");
str2=s1.split(",");

}

for(var i=0,i<str1.length,i++)
{
for(var j=0,j<str1[i],j++)
{
var out=new Array();
if(str1[i]="1")
{
out[i]=str2[i];
}
else{
out[i]+=str2[i];
}

}
}
for(var i=0,i<out.length,i++)
{
var str4=new String;
str4+=out[i];
return str4;
}

alert(strchange("A1B2C11"));
</script>
</body>
</html>

...全文
125 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainsome 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 foolbirdflyfirst 的回复:]
JScript codevar str='a2b3cde11';var s= str.replace(/([a-z])(\d+)/gi,function($0,$1,$2){return (new Array(parseInt($2)+1)).join($1);
});
alert(s);
[/Quote]这个写法有点意思。
<html>
<head>
<title>ToChange</title>
<script type="text/javascript">
function ToChange(){
var input=document.getElementById("input").value;
var objshow=document.getElementById("showresult");
var regex=/([a-z])(\d+)/ig;
var result=input.replace(regex,function(){
var arg1=arguments[1],arg2=arguments[2]-0;
if(isNaN(arg2))return arguments[0];
return (new Array(arg2+1)).join(arg1);
/*
var arr=new Array();
for(var i=0;i<arg2;i++)arr[i]=arg1;
return arr.join('');
*/
});
objshow.innerHTML=result;
}
</script>
</head>
<body>
<input id="input" type="text" value="a2b3cde11"/>
<input type="button" value="ok" onclick='javascript:ToChange();' />
<div id ="showresult"></div>
</body>
</html>
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 foolbirdflyfirst 的回复:]
JScript codevar str='a2b3cde11';var s= str.replace(/([a-z])(\d+)/gi,function($0,$1,$2){return (new Array(parseInt($2)+1)).join($1);
});
alert(s);
[/Quote]

very nice
tz6722033 2009-08-18
  • 打赏
  • 举报
回复
8楼立功,高手!
zhanglingdll_39 2009-08-18
  • 打赏
  • 举报
回复
哇 楼上的是正确的。 受教了。
foolbirdflyfirst 2009-08-18
  • 打赏
  • 举报
回复
var str = 'a2b3cde11';
var s = str.replace(/([a-z])(\d+)/gi,function($0,$1,$2){
return (new Array(parseInt($2)+1)).join($1);
});
alert(s);
zhanglingdll_39 2009-08-18
  • 打赏
  • 举报
回复
晕, 我还以为只是排序呢。 等我看看。等下给你答复
aperson111 2009-08-18
  • 打赏
  • 举报
回复
<!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=gb2312" />
<title>无标题文档</title>
<script language="javascript">
function strchange(str)
{
str1=str.split(/[A-Z]/);
str2=str.split(/\d/);
out="";
for(var i=1;i<str1.length;i++)
{
for(var j=0;j<str1[i];j++) {
out += str2[i-1];
}
}
return out;
}
alert(strchange("A1B2C11"));
</script>
</head>
<body>
</body>
</html>
试着写了写,不过这个问题大,呵呵
tz6722033 2009-08-18
  • 打赏
  • 举报
回复
e11输出11个e?
zhanglingdll_39 2009-08-18
  • 打赏
  • 举报
回复
s.split("") 把字符串转换为数组, 然后.sort()数组的排序, 在转换为string但是这个string每个字符都用逗号隔开了, 所以再用.replace(/,/gi,"")把逗号替换为空字符
tz6722033 2009-08-18
  • 打赏
  • 举报
回复
感谢楼上的回复,不过你没看明白题意。
zhanglingdll_39 2009-08-18
  • 打赏
  • 举报
回复
其实就前两句代码就搞定了。
var s = "dacba";
s = s.split("").sort().toString().replace(/,/gi,"") ;
alert(s);


这就可以实现你的要求了。
zhanglingdll_39 2009-08-18
  • 打赏
  • 举报
回复
var s = "dacba";
s = s.split("").sort().toString().replace(/,/gi,"") ;
var obj=Array.prototype.slice.call(s,0);
var obj = s.replace(/(.)(?=[^$])/g,"$1,").split(",");
alert(obj + "");
alert(obj.length);
alert(obj instanceof Array);

87,909

社区成员

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

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