Javascript字符串部分

目录

字符串

认识字符串

访问字符串中的字符:

访问字符串中单个字符:

字符串中的字符进行遍历也可以通过循环遍历

字符串方法

charCodeAt( ):

 String.formCharCode( ):

字符串查找方法

indexOf( )

lastIndexOf( )

search( )

substring

substr

slice(是数组的方法)

replace( )

split( )  字符串分割

toLowerCase( )       

toUpperCase( )       

contact   

字符串练习

字符串_验证码(1)

字符串_验证码(2)

字符串练习

字符串_敏感词过滤

字符串_表单验证


字符串

认识字符串

概念:所有带单引号或双引号的都叫做字符串

声明:

  1. 通过new运算符去声明字符串
  2. 省略new声明字符串
  3. 字符串常量赋值
        var str1 = new String(100);alert(str1 + 20);   //10020var str2 = String(100);alert(str2 + 20);   //10020var str3 = "100";alert(str3 + 20);   //10020

访问字符串中的字符:

        字符串.length        访问字符串中字符的个数

        【注】中文 utf-8(三个字符表示一个汉字)        gbk(两个字符表示一个汉字) 

                   在计数的时候都是当做一个汉字计数

        var str = "hello北京";alert(str.length);     //7,  hello---5; 北京---2

访问字符串中单个字符:

                字符串.charAt(下标)        【注】从0开始

                字符串[下标]  (类似数组)

【注】字符串是只读的,字符串一旦被声明就没有办法被修改;如果非要声明字符串,我们只能将原字符串销毁,生成新的字符串

【注】在JS中,字符串既是基本数据类型,又是复合数据类型。

        var str = "hello北京";alert(str.charAt(4));   //oalert(str[4]);      //ostr[4] = "x";alert(str);     //hello北京

字符串中的字符进行遍历也可以通过循环遍历

        var str = "hello北京";var str2 = str; //无法用此方法修改str的值for(var i = 0; i < str.length; i++){document.write(str[i] + "
");}
      //用三种方式声明字符串数据类型是不同的  var str1 = new String(100);alert(typeof str1); //objectvar str2 = String(100);alert(typeof str2); //stringvar str3 = "100";alert(typeof str3); //string

字符串方法

        了解:        格式        字符串.函数名( )

big( )用大号字体显示字符串
blink( )显示闪动字符串(IE下无效)
bold( )使用粗体显示字符串
fixed( ) 以打字机文本显示字符串
strike( )使用删除线来显示字符串
fontcolor( )使用指定颜色来显示字符串
fontsize( )使用指定尺寸来显示字符串
link( )把字符串显示为链接
sub( )把字符串显示为下标
sup( )把字符串显示为上标
document.write("hello".big() + "world".fontcolor("red") + "xxx".sub() + "yyy".sup());

charCodeAt( ):

        格式:字符串.charCodeAt( 下标 )

        功能:访问字符串中对应下标字符的ASCII码值

        var str = "hello";alert(str.charCodeAt(1));  //101

 String.formCharCode( ):

        格式:String.formCharCode(码值1, 码值2...)

        功能:将传入的ASCII码值转成对应的字符

        返回值:组成的字符串

        var str = String.fromCharCode(97, 98, 99, 100);alert(str);  //abcd

字符串查找方法

indexOf( )

                格式:supStr.indexOf(subStr, start)

                参数:第一个参数,查找的字符串

                           start   从哪个下标开始去查找,如果不传入,默认从下标0开始查找

                功能:在supStr中查找subStr第一次出现的位置,从start这个位置开始查找

                返回值:-1  说明没有查找到

        var supStr = "abcabcabc";var subStr = "abc";var subStr1 = "abcd";var index = supStr.indexOf(subStr); var index1 = supStr.indexOf(subStr,1);var index2 = supStr.indexOf(subStr1);alert(index);  //0alert(index1); //3alert(index2); //-1

lastIndexOf( )

                格式:supStr.lastindexOf(subStr)

                功能:在supStr中查找subStr最后一次出现的位置

                参数:第二个参数是开始查找的位置,查找的下标是从右往左数的

                返回值:-1  没有查找到

        var supStr = "abcabcabc";var subStr = "abc";var index = supStr.lastIndexOf(subStr); alert(index);  //6var supStr = "abcabcabc";var subStr = "abc";var index = supStr.lastIndexOf(subStr,4); alert(index);  //3

search( )

                格式:supStr.search(subStr)

                参数:字符串/正则表达式(用'/ /'括起来的表达式)

                功能:在supStr中查找subStr第一次出现的位置

                返回值:-1  没有查找到

        正则表达式:

                修饰符:  i   忽略大小写        g   全局匹配

        var supStr = "abcabcabc";var subStr = "abc";var index = supStr.search(subStr); alert(index);  //0
        var supStr = "Abcabcabc";// var subStr = "abc";var subStr1 = /abc/i;// var index = supStr.search(subStr); var index = supStr.search(subStr1); // alert(index);  //3alert(index);   //0

substring

                格式:字符串.substring(start, end);

                功能:将字符串中 [ start, end ) 提取这部分字符,生成一个新字符串

                返回值:新生成的字符串

        var str = "hello";var newStr = str.substring(1,4);alert(newStr);  //ellalert(str);     //hello

substr

                格式:字符串.subStr(start, length)

                返回值:新生成的字符串

        var str = "hello";var newStr = str.substr(1,3);alert(newStr);  //ellalert(str);     //hello

slice(是数组的方法)

                格式:字符串.slice(start, end);

        var str = "hello";var newStr = str.slice(1,4);   /* 不包括第四个元素 */alert(newStr);  //ellalert(str);     //hello

replace( )

                格式:supStr.rplace( oldStr, newStr );

                功能:用newStr将oldStr替换掉,生成新字符串

                参数:

                        第一个参数传入的是字符串,只能替换一次

                        第一个参数        正则表达式

                                / xxx /ig     i 忽略大小     g  全局匹配

                返回值:替换成新的字符串

        var str = "how are you";var newStr = str.replace("are", "old are");alert(str);     //how are youalert(newStr);  //how old are you var str = "how are are you";var newStr = str.replace("are", "old are");alert(str);     //how are are youalert(newStr);  //how old are are you var str = "how are are you";// var newStr = str.replace(/are/, "old are");  //与上式无区别var newStr = str.replace(/are/g, "old are");    alert(str);     //how are are youalert(newStr);  //how old old are you var str = "how aRe are you";var newStr = str.replace(/are/gi, "old are");    //忽略大小写了alert(str);     //how are are youalert(newStr);  //how old old are you 

split( )  字符串分割

                格式:字符串.split( 分割符, length );

                参数:

                        第一个参数,用这个分割符对源字符串进行分割

                        第二个参数,控制返回的数组的元素格式,一般情况下不用

                功能:用分割符对源字符串,进行字符串分割,将分割完毕以后的子串,放在数组中返回

                返回值:数组

        注意:

                1、相邻的两个分割符,会产生空字符串   ""

                2、分割符是空字符串""时,直接将每一个字符串单独分割成子串,放在数组中返回

        var str = "how are you";var arr = str.split(" ");alert(arr); //how,are,youalert(str); //how are youvar str = "how are you";var arr = str.split(" ",2);alert(arr); //how,are; 第二个参数一般不用 alert(str); //how are youvar str = "how  are you"; // how与are之间有两个空格var arr = str.split(" ");alert(arr); //how,,are,youalert(str); //how  are youvar str = "how are you";var arr = str.split("");//""为空字符串alert(arr);//h,o,w, ,a,r,e, ,y,o,u

toLowerCase( )       

        转成全小写

toUpperCase( )       

        转成全大写

        var str = "helloWORD";alert(str.toLowerCase());//hellowordalert(str.toUpperCase());//HELLOWORD

contact   

                字符串拼接

         var str = "hello";var newStr = str.concat("world",100);var newStr1 = str + "world" + 100;  //更加方便,使用较多alert(newStr);//helloworld100alert(newStr1);//helloworld100

  

字符串练习

        1、将字符串 str = "when I was young, I love a girl in neighbor class."中,从young提取到girl生成新字符串,但是不许数单词    

        var str = "when I was young,I love a girl in neighbor class.";var start = str.indexOf("young");var end = str.indexOf("girl") + "girl".length;var newStr = str.substring(start,end);alert(newStr);  //young,I love a girl

              2、将字符串用空格隔开,已知传入的字符串中只有字母,每个单词的首字母大写,请将每个单词用空格隔开,只保留一个单词的首字母大写

                传入:"HelloMyWorld"

                返回:"Hello my world"

    function wordOfStr(str){var arr = str.split("");for(var i = 1; i < arr.length; i++){//判断if(arr[i] >= "A" && arr[i] <= "Z"){//1、将大写字符转成小写     2、插入一个空格arr[i] = arr[i].toLowerCase();arr.splice(i, 0, " ");}}return arr.join("");}var str = wordOfStr("HelloMyWorld");alert(str);

         

字符串_验证码(1)

        验证码:验证你是否是机器人

                纯数字组成的验证:非常容易破解        6位数字验证码

                数组和字符组成的验证码:0~9      a~z      A~Z (后两个无法随机)

                         方法:

                                1、生成一个数组,就有单个字符,长度为62的数组;随机 0~61的下标

                                2、a~z的ASCII码为97-122,A~Z的ASCII码为65-90;随机0-122的ASCII码值

    //n位验证码  每一个数字的范围0~9  parseInt(Math.random() * 10)function numTestCode(n){var arr = [];   //存储生成的数字for(var i = 0; i < n; i++){var num = parseInt(Math.random() * 10);arr.push(num);}return arr.join("");}alert(numTestCode(6));function testCode(n){var arr = [];for(var i = 0; i < n; i++){var num = parseInt(Math.random() * 123);if(num >= 0 && num <=9){arr.push(num);}else if(num >= 97 && num <= 122 || num >= 65 && num <= 90){arr.push(String.fromCharCode(num));}else{i--;}}return arr.join("");}alert(testCode(6));

字符串_验证码(2)



000000

字符串练习

1、将字符串按照单词进行逆序,空格作为划分单词的唯一条件传入:"Welcome to Beijing"改为 "Beijing to Welcome"

    function reverseStr(str){var arr = str.split(" ");arr.reverse();return arr.join(" ");}alert(reverseStr("Welcome to Beijing"));

2、传入一个数组,元素类型与个数皆未知,返回新数组,由原数组的元素正序反序拼接而成

        传入:[ "One", "Tow", "Three" ];

        返回:[ "One", "Tow", "Three", "Three", "Tow", "One" ];

        function symmetryArr(arr){var newArr =  arr.concat();for(var i = arr.length - 1; i >= 0; i--){newArr.push(arr[i]);}return newArr;}alert(symmetryArr(["One", "Tow", "Three"]));

3、已知一个字符串对象中,英语单词用各种非字母字符分割,统计单词个数

        传入:"Yes, she*is&my@love.";

        返回:5

    function countOfWord(str){var count = 0;for(var i = 0; i < str.length - 1; i++){if(isABC(str[i]) && !isABC(str[i + 1])){count++;}}return count;}alert(countOfWord("Yes, she*is&my@love."));//判断单个字符是否是字母function isABC(charStr){if(charStr >= "a" && charStr <= "z" || charStr >= "A" && charStr <= "Z"){return true;}else{return false;}}

4、实现函数,查找子串出现的次数,返回字符串str中出现substring的次数

        传入:"abcabcabc","abc"

        返回:3

        function countOfStr(supStr, subStr){var arr = supStr.split(subStr); //通过短字符串,使长字符串进行分割return arr.length - 1;  //首位两个空值,中间两个空值,以abc分割arr.length = 4}alert(countOfStr("abcabcabc","abc"));

5、已知前锋邮箱的用户名只能由数字字母下划线组成,域名为@100phone.com,

        判断一个字符串是否是千峰邮箱,是返回true,不是返回false

                mail@1000phone.com        是

                $mail@1000phone.com        不是

                mail@1000phone.comp        不是

     function isEmail(email){//1、查找@符号的位置var index = email.indexOf("@");if(index == -1){return false;}else{var endStr = email.substring(index);if(endStr != "@1000phone.com"){return false;}else{//2、判断用户名是否符合数字字母下划线var username = email.substring(0, index);var isYes = true;   //假设都符合for(var i = 0; i = "a" && charStr <= "z" || charStr >= "A" && charStr <= "Z" || charStr >= "0" && charStr <= "9" || charStr == "_"){return true;}else{return false;}}

字符串_敏感词过滤

        表单元素,获取其中内容,通过.value的属性

        双标签节点  innerHTML属性,获取标签间内容

        要求:

                1、敏感词都过滤        正则表达式

                2、将敏感词替换成*     replace( )

    


字符串_表单验证

        事件驱动函数        onclick

                                      onblur   失去焦点

        

        点击输入框内部时, 没有任何反应,但点击输入框外部时,会有提示信息



6~18个字符,可使用字母、数字、下划线,需以字母开头

    

6~18个字符,可使用字母、数字、下划线,需以字母开头


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部