字符串练习题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>字符串题</title>
</head>
<body>
    <script>
        //截取未知的字符串
        /**
         *indexOf("指定的字符","可选,开始检索的位置,必须是在0-length-1之间的整数")判断是否存在于字符串中,得到在字符串中开始位置的下标。
         *通过属性 .length;得到要截取的字符串长度。
         *substr("必需,开始下标,正整数从头部开始,负整数从尾部开始","可选,要截取字符串的长度,必需是数值,如果省略改参数,那么返回从开始到结尾的所有字符")在字符串中截取到指定的字符串。
        */
        var urlstr = "www.baidu.com";
        function checkurl(furl,surl){
            var sindex = furl.indexOf(surl);
            var eindex = surl.length;
            if(sindex > -1){
                console.log(furl.substr(sindex,eindex));
            } else {
                console.log("不在字符串中");
            }
        }
        checkurl(urlstr,"baidue");
        //反转字符串
        /*
         *得到字符串的长度
         *定义一个空字符串,用于储存新的反转后的字符串
         *循环字符串,利用charAt(index);---返回字符串中指定下标的元素
         *index === 0-字符串长度之间的数字,当做字符串中的下标,不在则返回空字符串。
        */
        function reversal(oldstr){
            var len=oldstr.length;
            var newstr="";
            //两种循环都可以,注意赋值时的前后顺序。
            // for(var i=len; i>=0;i--){
            //     newstr=newstr + oldstr.charAt(i);
            // }
            for(var i=0;i<len;i++){
                newstr = oldstr.charAt(i)+newstr;
            }
            console.log(newstr);
        }
        reversal(urlstr);
        //字符串是否只出现一次,不是话,一共出现了几次。
        /**
         *indexOf(searchvalue,fromindex); 从首字符方向开始检索指定的字符,并返回第一次出现位置的下标。
         *searchvalue ===  必需,规定要检索字符串的值
         *fromindex   ===  可选整数参数。规定在字符串中开始检索的位置,合法取值范围在0到length-1之间如果省略则从首字符开始检索。
         *
         *lastIndexOf(searchvalue,fromindex); 从尾字符方向开始检索指定的字符,并返回第一次出现位置的下标。
         *searchvalue ===  必需,规定要检索字符串的值
         *fromindex   ===  可选整数参数。规定在字符串中开始检索的位置,合法取值范围在0到length-1之间如果省略则从尾字符开始检索。
         *
         *eval(string)
         *string 必需。要计算的字符串,其中要含有表达式或是要执行的语句
         *
         *match(searchvalue); 在字符串中找到指定字符,并返回该字符
         *searchvalue === 必需,规定要检索的字符串值
         *
         *match(regxp);
         *regxp  ===  必需,规定要匹配的正则,是否有全局标志 g .
        */
        function frequency(fstr,sstr){
            if(fstr.indexOf(sstr)>-1){
                var ifrequency = fstr.indexOf(sstr);
                var lfrequency = fstr.lastIndexOf(sstr);
                if(ifrequency===lfrequency){
                    console.log("只出现了一次");
                } else{
                    var reg = eval("/"+sstr+"/g");
                    var fre = fstr.match(reg).length;
                    console.log("共出现"+fre+"");
                }
            } else{
                console.log("在字符串中没找到指定字符")
            }
        }
        frequency(urlstr,"baidu3");
        //替换指定的字符串
        /**
         *判断是否在字符串中,
         *replace(regexp/substr,replacement)
         *regexp/substr === 必需,指定字符串或是要替换的正则表达式
         *replacement   === 必需,一个字符串值,要替换成什么的文本,或是替换的函数
        */
        function exchange(oldstr,changestr,newstr){
            if(oldstr.indexOf(changestr)>-1){
                var schangestr = changestr.toString();
                var snewstr = newstr.toString();
                console.log("替换后的字符串  "+oldstr.replace(schangestr,snewstr));
            } else {
                console.log("字符串中没有要替换的字符")
            }
        }
        var jdstr =["souuosu","shdfiohsoif"];
        exchange(urlstr,"baidu",jdstr);
    </script>
</body>
</html>
原文地址:https://www.cnblogs.com/Millet-23/p/9661608.html