var str="hello world";
var str= new String('hello world');
字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)。但是,字符串与数组的相似性仅此而已。实际上,无法改变字符串之中的单个字符。
length属性返回字符串的长度,该属性是不能修改的
需求:模拟登录,给三次机会,并提示还有几次。
用户名和密码都是admin
思路:1:获取用户输入的内容
2:字符串的比较
3:提示次数(错误的情况下)
var count = 1; while(true){ var name = prompt("请输入用户名"); var pwd = prompt("请输入密码"); if(name==="admin"&& pwd==="admin"){ alert("登录成功"); break; }else { if(count>=3){ alert("登录失败,没有机会了"); break; }else { alert("您还有"+(3-count)+"次次数"); } } count++; }
charAt方法:返回指定位置的字符
var str='abcd';
console.log(str.charAt(2));// c
遍历字符串:把字符串的每一个字符输出
// 遍历字符串 for (var i = 0; i < str.length; i++) { console.log(str.charAt(i)); }
统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数,其他字符出现的次数。*ABCDEabcd123456!@#$%^
var str1 = "asdASAS23423*&^%%"; var daxie = 0; var xiaoxie = 0; var num = 0; var other = 0; for (var i = 0; i < str1.length; i++) { var c = str1.charAt(i); if (c >= "A" &&c <= "Z") { daxie++; } else if (c >= "a"&& c <= "z") { xiaoxie++; } else if (c >= 0 && c<= 9) { num++; } else { other++; } } console.log("大写个数:"+daxie+" 小写个数:"+xiaoxie+" 数字个数:"+num+" 非法字符:"+other);
indexOf: indexOf返回该元素(可以单个字符,可以字符串,注意大小写敏感)的位置,不存在返回-1
trim():去掉字符串首尾空格
1:它的第一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置(不含该位置)。
2:如果只有一个参数,从这个位置到末尾
3:如果参数是负数,从倒数位置计数
4:第一个参数大于第二个,返回空串
1:substring方法用于从原字符串取出子字符串并返回,不改变原字符串。它与slice作用相同,但不支持负数,因此不建议使用这个方法,优先使用slice。
2:如果参数是负数,会将负数自动变成0
3:如果第一个参数大于第二个,会自动交换两个参数的位置
1:第一个参数表示起始位置,第二个参数表示长度
2:如果第二个参数为负数,会自动转换为0,然后返回空串
slice,substring,substr区别?
slice和substr可以支持负数
slice和substring的两个参数是起始和终止位置,而substr的第二个参数是长度
substring如果第一个参数大于第二个,会自动交换位置
toLowerCase:全部转换为小写
toUpperCase:全部转换为大写
var str = "javaScript"; console.log(str.toLowerCase());//javascript console.log(str.toUpperCase());//JAVASCRIPT
需求:1:将字符串首字母大写,其余小写
var str1 = "" +str.toUpperCase().charAt(0) + str.slice(1).toLowerCase(); console.log(str1);
2:统计大串中小串出现的次数
var s1 = "asdasdJavasdsdfJava"; var s2 = "Java"; var count = 0; var index = 0; while ((index = s1.indexOf(s2)) != -1) { count++; s1 = s1.slice(index+s2.length); } console.log(count);
concat:连接一个或者多个字符串
varstr1 = 'my name ';
varstr2 = 'is ivan ';
vardate = '2016.11.30 ';
console.log(str1.concat(str2,date));
split:按照参数的将字符串分割成数组
//字符串的分割 var str = "java-script-h5"; //将字符串按照指定的字符串进行分割 var arr = str.split("-"); console.log(arr); //将数组转换成字符串 java,script,h5 console.log(arr.toString()); //将字符串进行分割 var arr1 = arr.toString().split(","); console.log(arr1); console.log(str.search("script")); console.log(str.indexOf("script"));
search方法的用法等同于match,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1。
varstr='Farsight ivan teacher';
console.log(str.search('ivan')); //精确查找第一次出现ivan字符串的位置
相比indexof ,search更强大,支持正则表达式进行规则过滤
需求:统计大串中小串出现的次数
var l1 = "sadH5asdasH5asdasdH5"; var l2 = "H5"; var count = 0; var index = 0; while((index = l1.search(l2))!=-1) { count++; l1 = l1.slice(index+l2.length); } console.log(count);
match方法用于确定原字符串是否匹配某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null。
var str2='ivan 20 yzg 20 lili 50'; alert(str2.match(20).index);
返回数组还有index,分别表示匹配字符串开始的位置。
varstr='ivan2016 yzg2016';
console.log(str.replace('2016', '')); //删除第一个数字2016
