JavaScript核心语法学习部分(七)

获取指定位置的字符:str.charAt(index);

案例:获取身份证指定位置数字判断性别

1     var input=prompt("请输入 身份证号码:");
2     var char=input.charAt(input.length-2);
3     console.log(char%2==0?"女":"男");

获取指定位置位置字符的unicode编码:var num=str.charCodeAt(index);

案例1:编码解码

1     var input=prompt("输入消息:");
2     var result=[];
3     for (i=0;i<input.length;i++){
4         result.push(input.charCodeAt(i));
5     };
6     document.write(result.join(""));

案例2:编码解码(包含数字的情况)

 1     var input=prompt("输入消息:");
 2     var result=[];
 3     for (i=0;i<input.length;i++){
 4         var num=input.charCodeAt(i)
 5         if(num<10000){
 6             var arr=[0,0,0,0,0];
 7             var code=num+"";
 8             var start=5-code.length;
 9             for(var n=0;n<code.length;n++){
10             arr[start]=code[n];    
11             start++;
12             }
13             num=arr.join("")
14         }
15         result.push(num)
16     };
17     document.write(result)

 字符串三大操作:1查找关键字2替换关键字3获取字符串

查找关键字:str.indexOf("关键字");返回关键字所在位置,如果没找到分给-1

indexOf:懒——只找第一个关键字位置 蠢——默认只能从位置0开始!

var index=str.indexOf("关键字",from);

from:开始查找位置,从from开始向后查找。

案例:使用indexOf查找所有关键字位置!

1     var str='女神说要来,我草草的收拾了下房间,结果她又说不来了,我说:我草!';
2     var index=-1;
3     while((index=str.indexOf("我草",index+1))!=-1){
4         console.log("位置"+index+    "发现关键字");
5     }

①var index=str.lastIndexOf("关键字",from);

from:开始查找的位置,从from向前查找

获取子字符串:var subStr=str.slice(start,end)

②str.substring(start,end+1)用完完全同str.slice

唯一差别:substring不支持负数作为参数。

③str.substr(start,*count*)

以上三个方法省略第二个参数默认都是取到结尾。

案例:获取生日

1 var input=prompt("请输入 身份证号码:");
2 var char=input.charAt(input.length-2);
3 var birth=input.slice(6,6+8); 
4 console.log(birth);
5 console.log(char%2==0?"女":"男");

 按照规律分割字符串:str.split("分隔符"[,count])

案例:转换首字母为大写

1     var str="no zuo no die";
2     var words=str.split(" ");
3     for(var i=0;i<words.length;i++){
4         words[i]=words[i][0].toUpperCase()+words[i].substring(1);
5     };
6     str=words.join(" ");
7     document.write(str)

 unicode范围:

48-57:0-9数字字符

65-90:A-Z大写字母

97-122:a-z小写字母

19968-40869:汉子

案例:查找字符个数

 1     str="选购AppleCare+,延保2年";
 2     var negCount=0;
 3     var numCount=0;
 4     var chsCount=0;
 5     var other=0;
 6     for (var i=0;i<str.length;i++){
 7         var num=str.charCodeAt(i);
 8         if(num>=19968&&num<=40869){
 9             chsCount++;
10         }else if((num>=65&&num<=90)||(num>=97&&num<=122)){
11             negCount++;
12         }else if(num>=48&&num<=57){
13             numCount++
14         }else{
15             other++;
16         }
17     }
18     document.write("<br>"+"汉字:"+chsCount+
19     "<br>"+"字母:"+negCount+
20     "<br>"+"数字:"+numCount+
21     "<br>"+"其他字符:"+other);

模式匹配:可以设置查找或替换的规则!

何时使用模式匹配:要查找的关键字可能发生有规律的变化

如何使用模式匹配:1.先定义模式:/关键字/模式 例如:var  reg=/no/i  i:忽略大小写 g:表示全局查找和替换

String类型中,提供了专门支持模式匹配的API

按照模式替换关键字:str=str.replace(reg,"新值");  reg是定义的规则。reg=/no/ig  默认替换第一个,可以使用g进行全局替换!

案例:查找替换部分字母,不区分大小写

1     var str="No zuo no die";
2     var reg=/no/ig;
3     str=str.replace(reg,"~~");
4     console.log(str);

获得所有关键字的内容:var kwords=str.match(reg);只能获得关键字的内容,无法获取关键字的内容。返回的是数组。

kwords.length:找到的关键字个数,如果未找到,返回null;今后只要有可能返回null,就都要先判断不等于null再处理,否则会报错找不到对象!

案例:查找no关键字内容,替换部分字母,不区分大小写

1     var str="No zuo no die";
2     var reg=/no/ig;
3     var kwords=str.match(reg);
4     console.log(kwords);
5     str=str.replace(reg,"~~");
6     console.log(str+"<br>");
7     if(kwords!==null){
8         document.write("共替换了"+kwords.length+"处");
9     }

 

posted @ 2017-09-07 21:31  Angche  阅读(134)  评论(0编辑  收藏  举报