js String基础
发布日期:2022-02-08 04:20:57
浏览次数:4
分类:技术文章
本文共 5037 字,大约阅读时间需要 16 分钟。
String
定义赋值方法
var srt0="abc";var str1 = 'abc';var str2 = `abc`;console.log(srt0 === str1,str1 === str2, typeof str1); //true true "string"
创建
1、String()创建,转化为字符串类型var str0=String("abc");//存在栈中var str4=String("abc");//存在栈中console.log(str0===str4,typeof str0);//true "string" 相等 2、构造函数创建new String()var str1=new String("abc");//字符型对象,存在堆中的var str2=new String("abc");//字符型对象,存在堆中的console.log(str0===str1,typeof str1);//false "object" 不相等 console.log(str2===str1,typeof str2);//false "object" 不相等
通过字符串下标获取元素
- 获取字符串的下标是0的字符 console.log(str[0]); str[0] 只读,不能设置值,亦不能修改值。
var str="abcdefg";console.log(str[0]); //astr[0]="aaa";console.log(str[0]); //a 无法修改str[0]的值
字符串长度
- srt.length 获取字符串字符个数,只读,只能获取,不能修改。
- 示例:将字符串内容反转
var str="abcdefg";var len=str.length;var str1="";while(len>0){ str1+=str[len-1]; len--;}console.log(str1); //gfedcba
字符串常用方法
1、鸡肋方法:concat( ) ,常用字符串相加替代。
str.concat(); //连接字符串
var str="abcdefg";var str1=str.concat("000"); //concat连接字符串var str2=str+"000"; //字符串直接相加str+="000";console.log(str,str1,str2); //abcdefg000 结果都一样//举个小栗子var age=15;var str3="今年小明"+age+"岁了";var str4="今年小明".concat(age,"岁了。");console.log(str3,str4); //今年小明15岁了。 结果都一样
2、charAt( )
str.charAt(); //获取字符,从0~length-1,默认下标为0 。
var str = "abcdefg";console.log(str.charAt()); //a 默认str[0];console.log(str.charAt(0)); //a str[0];console.log(str.charAt(1)); //b str[1];console.log(str.charAt(str.length-1)); //g 最后一个
3、indexOf( ) 、LaseIndexOf()
查找出现的下标。 str.indexOf(); str.LaseIndexOf();var str = "abcbdebbfgb";console.log(str.indexOf("b")); //1console.log(str.lastIndexOf("b")); //10
4、slice( )
截取字符串内容,不改变原字符串。
str.slice(起始下标,截取到该下标之前); console.log(str.slice(0, 3)); //abc 截取赋值0,3之前1、随机获取颜色rgb值function randomColor() { var color = "rgb("; for (var i = 0; i < 3; i++) { color += Math.floor(Math.random() * 256) + ","; } color = color.slice(0, -1) + ")"; //截取到最后一个字符之前,把最后一个","去掉 return color;}console.log(randomColor()); //rgb(239,250,234) 随机得来的rgb值,每次不一样
5、charCodeAt( ) 、fromCharCode( )
- 求字符串的对应下标字符的Unicode编码 str.charCodeAt();
- 将unicode编码转换为字符 str.fromCharCode();
1、字符--->Unicode编码var str = "林灵";console.log("\\u" + str.charCodeAt(0).toString(16)); //\u6797console.log("\u6797","\u7075"); //林 灵2、Unicode编码--->字符console.log(String.fromCharCode(97)); //a
- 示例1:0~ 9 、A ~ Z、 a ~ z 乱序打印
1、用数组var arr = [];for (var i = 48; i < 123; i++) { if (i > 57 && i < 65) continue; if (i > 90 && i < 97) continue; arr.push(String.fromCharCode(i));}// console.log(arr); //正序打印var arr1=[];while(arr.length>0){ var n=Math.floor(Math.random()*arr.length); //扩大随机范围 arr1.push(arr.splice(n,1)[0]); //将第n个数提取出来,原数组改变}console.log(arr1); //乱序打印2、用数组的sort方法来打乱顺序var arr = [];for (var i = 48; i < 123; i++) { if (i > 57 && i < 65) continue; if (i > 90 && i < 97) continue; arr.push(String.fromCharCode(i));}arr.sort(function(){ return Math.random()-0.5; //乱的比较彻底});console.log(arr);
- 示例2:验证码,择取前四个,保证是无重复
3、用数组,sort排序,length===4function getStr() { var arr = []; for (var i = 48; i < 123; i++) { if (i > 57 && i < 65) continue; if (i > 90 && i < 97) continue; arr.push(String.fromCharCode(i)); } arr.sort(function(){ return Math.random()-0.5; }); arr.length=4; return arr.join(""); //转化为字符串,以空字符分开}console.log(getStr()); //随意四个字符4、用字符串function getStr() { var arr = []; for (var i = 48; i < 123; i++) { if (i > 57 && i < 65) continue; if (i > 90 && i < 97) continue; arr.push(String.fromCharCode(i)); } var str = ""; while (str.length < 4) { var s = Math.floor(Math.random() * arr.length); console.log(str.indexOf(arr[s])); if (str.indexOf(arr[s]) > -1) continue; //避免字符重复 str += arr[s]; } return str;}console.log(getStr());
正则中使用的方法
6、search( ) 、match( )
- 用于正则,字符的查找。
var str = "abcdefg";console.log(str.search("a")); // 0 查找下标console.log(str.match("a")); //["a", index: 0, input: "abcdefg", groups: undefined] 查找
7、replace(要查找的值,要替换的值或回调函数)
- str.replace(要查找的值,要替换的值或回调函数); 替换字符串中指定的内容,返回被替换后的字符串,原字符串不改变,仅能替换第一个被查找到的元素。
console.log(str.replace("a","z")); //zbcdefg
8、substring(第几个开始截取,截取到哪里)
- str.substring(第几个开始截取,截取到哪里);
- 截取 , 不允许使用负数(负数就是0前面的,就是0),可以反向截取。
console.log(str.substring(0,4)); //abcdconsole.log(str.substring(4,0)); //abcd
9、substr(从什么位置开始,截取字符串的长度)
- 从什么位置开始,可以使用负数;
- 截取字符串的长度,不能为负数, 如果没有给长度,默认截取到尾部。
- 可以截取固定长度的字符串。
- 不改变原数组。
var str="abcdefgh";console.log(str.substr(-6)); //从倒数第6个开始截取console.log(str); //abcdefgh//截取信息内容var str = "skyLove@163.com";console.log(str.substring(str.indexOf("@") + 1)); //截取邮箱类型
10、split( )
- 切割,将字符串以某符号切割返回成数组。
1、基础var str = "a#b#c#d#e";console.log(str.split("#"));//将字符串以什么符号切割成数组2、反转字符串console.log(str.split("").reverse().join("")); //e#d#c#b#a3、切割,分离邮箱类型var str = "skyLove@163.com";console.log(str.split("@")[1]); //163.com4、大小写转换console.log(str.toUpperCase()); //SKYLOVE@163.COM 转换成大写console.log(str[0].toUpperCase() + str.slice(1)); //SkyLove@163.com 首字母转换成大写console.log(str.toLowerCase()); //skylove@163.com 转换为小写字母
(注意:用split可以来解析地址请求,详情请看 “js 地址请求解析” 这篇文章。)
转载地址:https://blog.csdn.net/weixin_43297321/article/details/104203908 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月12日 12时14分59秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PageRanke算法
2019-04-28
时间序列预测模型
2019-04-28
EM聚类算法
2019-04-28
KNN算法
2019-04-28
贝叶斯分类流程
2019-04-28
机器学习概念
2019-04-28
物理化学 化学 动力学(上)
2019-04-28
物理化学 化学 动力学(中)
2019-04-28
物理化学 化学 动力学(下)
2019-04-28
叠加原理 戴维南定理
2019-04-28
RLC 串联电路
2019-04-28
kaggle研究生招生(上)
2019-04-28
聊天机器人
2019-04-28
半导体二极管和晶体三极管
2019-04-28
基本放大电路(上)
2019-04-28
基本放大电路(下)
2019-04-28
大数据系统和分析技术综述(引用最多)
2019-04-28
大数据流式计算:关键技术及系统实例
2019-04-28
MySQL快速生成大量测试数据1000万
2019-04-28