String字符串和正则表达式⼀·String 对象⽅法
概念:多个字符组成的只读字符数组.........String本质上就是数组
和数组的不同
1.数组可以随意修改原数组,但字符串只读字符数组,⼀旦创建内容不可改变
2.类型不同:数组是Array,字符串是String都不可⽤
相同
1.都能⽤[i]访问某个元素或字符
2.都有length属性来记录元素或字符的个数
3.都能有for循环遍历元素或字符
4.都⽀持slice选取⼦数组或字符串
常⽤的API
toLowerCase(): 把字符串转为⼩写,返回新的字符串
var str="Hello World";
var LowerCase();
console.log(str);  //Hello World
console.log(str1); //hello world
toUpperCase(): 把字符串转为⼤写,返回新的字符串
var str="hello world";
var UpperCase();
console.log(str); //hello world
console.log(str1); //HELLO WORLD
charAt(): 获取指定下标位置的字符
var str="hello world";
var str1=str.charAt(6);
console.log(str1); //w
charCodeAt(): 返回指定下标位置的字符的unicode编码
var str="hello world";
var str1=str.charCodeAt(1);
var str2=str.charCodeAt(-2); //NaN
console.log(str1); //101
split(): 把字符串分割成字符串数组。
var str="AA BB CC DD";
var str1=str.split("");//如果把空字符串 ("")⽤作分割符,那么字符串的每个字符之间都会被分割
console.log(str1);// ["A", "A", " ", "B", "B", " ", "C", "C", " ", "D", "D"]
var str2=str.split(" "); //以空格为分隔符
console.log(str2);  //["AA" "BB" "CC" "DD"]
var string1="1:2:3:4:5";
var str4=string1.split(":");
console.log(str4);  // ["1", "2", "3", "4", "5"]
slice() ⽅法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
提取从位置 6 开始的所有字符:
<script type="text/javascript">
var str="Hello happy world!"
document.write(str.slice(6))
</script>
输出:happy world!
提取从位置 6 到位置 11 的所有字符:
<script type="text/javascript">
var str="Hello happy world!"
document.write(str.slice(6,11))
</script>
输出:happy
substr() ⽅法可在字符串中抽取从 start 下标开始的指定数⽬的字符。
使⽤ substr() 从字符串中提取⼀些字符:
1.<script type="text/javascript">
var str="Hello world!"
document.write(str.substr(3))
</script>
输出:lo world!
2.<script type="text/javascript">
var str="Hello world!"
document.write(str.substr(3,7))
</script>
输出:lo worl
concat() ⽅法⽤于连接两个或多个字符串。
<script type="text/javascript">
var str1="Hello "
var str2="world!"
document.at(str2))
</script>以上代码的输出是:
Hello world!
replace(): 在字符串中⽤⼀些字符替换另⼀些字符,或替换⼀个与正则表达式匹配的⼦串。
var str="hello WORLD";
var reg=/o/ig; //o为要替换的关键字,不能加引号,否则替换不⽣效,i忽略⼤⼩写,g表⽰全局查。
var place(reg,"**")
console.log(str1);  //hell** W*RLD
查关键词的四种⽅法
1.查⼀个固定的关键词出现的位置
var i =string.indexog("关键词”)默认从0开始,默认仅能查⼀次出现的位置
var str="Hello World";
var str1=str.indexOf("o");
var str2=str.indexOf("world");
var str3=str.indexOf("o",str1+1);
console.log(str1);  //2 默认只第⼀个关键字位置,从下标0开始查
console.log(str2);  //-1
console.log(str3);  //7
2.判断字符串中是否包含符合正则的敏感词
var i = str.search(/正则/i)  i表⽰忽略⼤⼩写在str中到第⼀个符合正则表达式要求的关键字的位置返回值:到了返回关键词的下标,如果没有到返回-1
<script type="text/javascript">
var str="Visit W3School!"
document.write(str.search(/w3school/i))
</script>
输出:6
3.使⽤正则表达式查询指定的⼀类关键词
var arr = str.match(/正则/ig)  查str中所有符合正则表达式要求的关键词,保存在⼀个数组中返回默认只第⼀个,到所有需要必须加上g
返回值:所有敏感词组成数组,没有到返回null
var arr = str.match(/we/gi);
console.log(String(arr));
//强调:如果⼀个api有可能返回null,就必须先做判断,不等null时在使⽤
4.既知道位置⼜具体内容
//var arr = (带查的完整字符串)
返回值:本次到的⼀个关键词及位置
arr[0]:关键词的内容如果正则中有分组    arr[n]:⾃动保存在第n个分组匹配的⼦内容
arr[index]:当前关键词位置  -- > arr.index 如果没有到返回null
每次查后,都将reg.lastIndex属性(下⼀次开始位置)修改为当前index+关键词长度,相当于跳过了当前关键词继续向后var  str = "那天,我去她家,我说:你家真⼤。她说⼀起去郊游,草的收拾了⼀下,她说:我去去就来";
var reg =/我[去草]{1,2}/g;
var arr;
//固定⽤法:所有关键词
//反复:str中的关键词,只要不等于null
while(((str))!=null){
console.log(arr);
console.log(
`在位置${arr["index"]}
发现
敏感词${arr[0]}`
);
}
正则化匹配26个字母python⼆.正则表达式
RegExp 是正则表达式的缩写。
RegExp 对象的⽅法
RegExp:
封装⼀条正则表达式,提供了使⽤正则表达式进⾏查和验证的API
创建直接量的创建已知规则
var reg=/no/g;// 所有与的/在正则中都要加上\/才能转义为/
console.log(typeof reg);//object 对象
动态创建正则
var reg1=new RegExp(/正则/,"gi");
对象有 3 个⽅法:test()、exec() 以及 compile()。
正则表达式是严格区分⼤⼩写的
i  加上去以后,让正则表达式对⼤⼩写不敏感,不常⽤
g  全局匹配到了以后还会继续的去,没有到就⼀直
m  执⾏多⾏匹配
练习<script>
// 作业对信息进⾏加密  "520 1314"  "今晚⼋点,不见不散"
// charCodeAt  String.fromCharCode sub()  slice() substr()
//定义⼀个函数加密规则:每字符串都转化为unicode码  ---保证每⼀个unicode码都是五给字符不够5个字符的地⽅⽤0补上//定义⼀个函数解密:通过unicode码转换为字符
var msg = "今晚8点,⽼地⽅不见不散,w84u"
function encode(msg){
for(var i=0,code="";i<msg.length;i++){
//将msg中当前字符转换为unicode,拼接到code上
// code+=msg[i].charCodeAt();
var u= msg.charCodeAt(i);
//加密的unicode码都变成五位数
/*if(u<100){
u="000"+u;
}else if(u<1000){
u="00"+u;
}*/
//(u+100000+"").slice(1)
//52+100000=100052
//20170+100000=120170  .slice(1)  =20170
//    012345
code += (u+100000+"").slice(1);
}
return code;
}
var code = encode(msg);
console.log(code);
function decode(code){
//声明空字符 str
var str="";
//
return str;
}
var receive = decode(code);//对加密的信息解密
console.log(receive);//输出解密之后的结果
</script>
练习:随机⽣成验证码,验证是否输⼊正确
<body>
<script>
function getchars(){
var char=[];
for(var u=48;u<=57;u++){
//将0-9转为正⽂存⼊数组
char.push(String.fromCharCode(u));
}
for(var u=65;u<=90;u++){
//将A-Z转为正⽂存⼊数组
char.push(String.fromCharCode(u));
}
for(var u=97;u<=122;u++){
//将a-z转为正⽂存⼊数组
char.push(String.fromCharCode(u));
}
return char;
}
function getcode(){
/
/声明⼀个空数组
var code=[];
var chars=getchars();
//⽣成4位数验证码
for(var i=0;i<4;i++){
//在0-61随机⽣成⼀个数
var r=Math.floor(Math.random()*62);
//将chars中r位置的字符存⼊code
code.unshift(chars[r]);
}//循环结束
//返回⽆缝连接的结果
return code.join("")
}
fun4();
function fun4(){
var code=getcode();
var input;
while((input=prompt("请输⼊验证码"+code)).toLocaleLowerCase()!=LocaleLowerCase()){
//验证码错误,重新输⼊
alert('验证码错误,请重新输⼊');
//重新获取验证码
code=getcode();
}//循环结束

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。