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" 不相等

通过字符串下标获取元素

  1. 获取字符串的下标是0的字符
    console.log(str[0]);
    str[0] 只读,不能设置值,亦不能修改值。
var str="abcdefg";console.log(str[0]);  //astr[0]="aaa";console.log(str[0]);  //a  无法修改str[0]的值

字符串长度

  1. srt.length
    获取字符串字符个数,只读,只能获取,不能修改。
  2. 示例:将字符串内容反转
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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:js 地址请求解析
下一篇:js 条件语句&循环语句

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月12日 12时14分59秒