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>