JS中,字符串的基本操作有:
1.search 查找
2.substring 获取子字符串
3.charAt 获取某个字符
4.split分割字符串,获得数组
JS中,数组的基础操作有:
1.push()方法可以在数组的末属添加一个或多个元素
2.pop()
方法把数组中的最后一个元素删除
3.shift()
方法把数组中的第一个元素删除
4.unshift()
方法可以在数组的前端添加一个或多个元素
5.splice
(1)删除功能,第一个参数为第一项位置,第二个参数为要删除几个。array.splice(index,num),返回值为删除内容,array为结果值。
(2)插入功能,第一个参数(插入位置),第二个参数(0),第三个参数(插入的项)
array.splice(index,0,insertValue),返回值为空数组,array值为最终结果值
(3)替换功能,第一个参数(起始位置),第二个参数(删除的项数),第三个参数(插入任意数量的项)
array.splice(index,num,insertValue),返回值为删除内容,array为结果值。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
width: 500px;
height: 160px;
border: 1px solid #000;
margin: 100px auto;
}
ul>li{
list-style: none;
margin: 10px;
}
ul>li:nth-child(1)>button{
width:60px ;
margin-left: 10px;
}
ul>li:nth-child(2)>input{
margin-left: 75px;
}
div{
width: 300px;
height: 300px;
border: 1px solid #000;
margin: 100px auto;
/*这是个文本溢出div时的自动换行*/
word-break:break-all;
}
</style>
<script>
//思路:将输入的字符串的相邻的数字和字母分别提取到两个数组中,然后进行输出。
//字符串提取数字和字母,我用的是原生的方法,用正则会特别简单
window.onload=function () {
//获取第一个输入框
var oTxt=document.getElementsByTagName("input")[0];
//获取第二个输入框
var oResult=document.getElementsByTagName("input")[1];
//获取确定按钮
var oDetermine=document.getElementsByTagName("button")[0];
//点击确定事件
oDetermine.onclick=function () {
//获取输入的字符串
var str=oTxt.value;
//判断第一个字符是否为字母,若是数字则警告第一位必须是字母
if(str.charAt(0)>="0"&&str.charAt(0)<"9")
{
alert("输入的字符串的第一位必须为字母");
}
//判断最后一个字符是否为数字,若是字母则警告最后一位必须是数字
if(!(str.charAt(str.length-1)>="0"&&str.charAt(str.length-1)<"9"))
{
alert("输入的字符串的最后一位必须是数字")
}
//如果第一位是字母,且最后一位是数字,则条件满足,则可执行以下代码
if(!(str.charAt(0)>="0"&&str.charAt(0)<"9")&&(str.charAt(str.length-1)>="0"&&str.charAt(str.length-1)<"9"))
{
// 定义一个空字符串,用来记录数字
var tempNum="";
//定义一个空数组,用来存放数字
var arrayNum=[];
// 定义一个空字符串,用来记录字母
var tempStr="";
//定义一个空数组,用来存放字母
var arrayStr=[];
//定义一个空字符串,用来记录最后的结果
var strResult="";
//for循环遍历输入字符串长度
for(var i=0;i<str.length;i++)
{
//若字符是数字,则记录在tempNum这个字符串中
if(str.charAt(i)>="0"&&str.charAt(i)<"9")
{
tempNum+=str.charAt(i);
/*若tempStr这个字符串不空,那么就将这个字符串存进arrayStr这个数组中,然后tempStr="";
* 防止arrayStr重复添加tempStr这个字符串
* */
if(tempStr)
{
arrayStr.push(tempStr);
tempStr="";
}
}
//若字符是字母,则记录在tempStr这个字符串中
else
{
tempStr+=str.charAt(i);
/*若tempNum这个字符串不空,那么就将这个字符串存进arrayNum这个数组中,然后tempNum="";
* 防止arrayNum重复添加tempNum这个字符串
* */
if(tempNum)
{
arrayNum.push(tempNum);
tempNum="";
}
}
}
/* 由于字符串的最后一位必须是数字,那么上面的循环便不会执行else语句,即不会将tempNum
存放在arrayNum这个数组中,故最后要再添加一次
* */
if(tempNum)
{
arrayNum.push(tempNum);
}
// 遍历最后的arrayNum或arrayStr数组
for (var i=0;i<arrayNum.length;i++)
{
//将arrayStr[i]重复的次数为parseInt(arrayNum[i])
for (var j=0;j<parseInt(arrayNum[i]);j++)
{
strResult+=arrayStr[i];
}
}
//将结果写入textbox里
oResult.value=strResult;
//将结果写入div中
document.getElementsByTagName("div")[0].innerText=strResult;
}
}
}
</script>
</head>
<body>
<ul>
<li><label>请输入字符串:</label><input type="text"><button>确定</button></li>
<li><label>结果:</label><input type="text"></li>
</ul>
<div></div>
</body>
</html>