js 字符串功能转换解析

news/2024/12/15 5:40:15/

一. 字符串转换

1.1. 对象转字符串stringify

var str = JSON.stringify(weather);

1.2. 字符串转对象

var obj = JSON.parse(str);

1.3. 数字转字符串toString()

var num = 2023;
var str = '';
str = num.toString();

1.4. 字符串转数字parseInt(string)

parseInt('123'),返回的结果就是int型的123
parseInt('123abc'),返回的结果就是12

1.5. 字符串转数字parseInt(string)和parseFloat()

  前者把值转换成整数,后者把值转换成浮点数

parseInt('123')//返回的结果就是int型的123
parseInt('123abc')//返回的结果就是123
parseFloat('123.4abc')//返回的结果就是123.4

  parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:

console.log('数字:', parseInt("AF", 16));  //returns 175
console.log('数字:', parseInt("10", 2));   //returns 2
console.log('数字:', parseInt("10", 8));  //returns 8
console.log('数字:', parseInt("10", 10));  //returns 10

二. 其他类型转换

2.1. 强制类型转换

  强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
  ECMAScript中可用的3种强制类型转换如下:
  Boolean(value)——把给定的值转换成Boolean型;
  Number(value)——把给定的值转换成数字(可以是整数或浮点数);
  String(value)——把给定的值转换成字符串。

Boolean型的强制类型转换代码

console.log('强制类型转换:', Boolean(""))     //false – empty string   
console.log('强制类型转换:', Boolean("hi"))   //true – non-empty string  
console.log('强制类型转换:', Boolean(100))    //true – non-zero number 
console.log('强制类型转换:', Boolean(null))   //false - null  
console.log('强制类型转换:', Boolean(0))      //false - zero  
console.log('强制类型转换:', Boolean(new Object())) //true – object  

2.2. Number()的强制类型转换代码

  与parseInt()和parseFloat()方法的处理方式相似

console.log('强制类型转换:', Number(false))     //0
console.log('强制类型转换:', Number(true))      //1
console.log('强制类型转换:', Number(undefined)) //NaN
console.log('强制类型转换:', Number(null))      //0
console.log('强制类型转换:', Number("5.5 "))    //5.5
console.log('强制类型转换:', Number("56 "))     //56
console.log('强制类型转换:', Number("5.6.7 "))  //NaN
console.log('强制类型转换:', Number(new Object())) //NaN
console.log('强制类型转换:', Number(100))          //100 

2.3. 利用js变量弱类型转换

  对数字处理,保留小数点后数字 toFixed() (toFixed() 函数会四舍五入)

var num = 2.446242342;
num = num.toFixed(2); 
console.log('输出结果:', num) // 输出结果: 2.45   

  对数字处理,保留小数点后数字 (不四舍五入)

var num2 = Math.floor(15.7784514000 * 100) / 100
console.log('输出结果:', num2) // 输出结果为 15.77  

三.判断字符串中是否包含某个字符串

3.1. indexOf

  indexOf 返回指定字符串在该字符中首次出现的位置,如果没有找到,则返回 -1
  indexOf 接收两个参数,第一是需要搜索的字符串,第二个参数是检索的位置,默认为0

//str.indexOf("")的值为-1时表示不包含
var str = "hello Tara";
if(str.indexOf("Tara") !== -1){alert("Hi,Tara");
}

3.2. lastIndexOf

  lastIndexOf是从字符串末尾开始搜索,返回指定字符串在该字符中最后一次出现的位置
  lastIndexOf 接收两个参数,第一个是需要搜索的字符串,第二个参数是检索的位置,默认是 sting.length - 1

let str = 'abcdea';
//例如,从str第三位向前开始搜索 'a'
console.log(str.lastIndexOf('a',2));// 0
console.log(str.lastIndexOf('a'));// 5

3.3. includes

  lincludes() 方法用于判断字符串是否包含指定的子字符串,返回 true 或 false
  includes 接收两个参数 第一个参数为指定字符串, 第二个参数为查找位置,默认为0

//str.includes("")返回一个布尔值,值为true时表示包含
var str = "hello Tara";
if(str.includes("Tara")){alert("Hi,Tara");
}

3.4. match

  match方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,如果未找到,则返回 null(也可以用来查询字符串中某个字符出现的次数)。全局搜索,忽略大小写。

let str = 'abcdabcda';
console.log(str.match(/a/gi));//['a','a','a']
console.log(str.match(/z/gi));// null

3.5. search

  seacrh方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,如果没有则返回 -1

let str = 'abcde';
console.log(str.search('a'));// 0
console.log(str.search(/A/i));//使用正则匹配忽略大小写检索   返回 0

3.6. 正则表达式 RegExp 对象

3.6.1. test方法

  检索字符串中指定的值。返回 true 或 false。

let str = 'abcdef';
let reg = /A/i;
console.log(reg.test(str));// true

3.6.2.exec方法

  检索字符串中指定的值。返回找到的值,并确定其位置。
  如果字符串中有匹配的值返回该匹配值,否则返回 null。

let str = 'abcdef';
console.log(/a/.exec(str))// 返回匹配对象
console.log(/z/.exec(str))// null  检索字符串中指定的值。返回 truefalse

http://www.ppmy.cn/news/1275606.html

相关文章

面试记录一

1.MYSQL查询语句 问: 我有一条sql语句 selet * from user where id in(5,10,8) 我要查询出来的数据要按照我的in里面包含的顺序显示出来 答: SELECT * FROM user WHERE id IN (5,10,8) ORDER BY CASE id WHEN 5 THEN 1 WHEN 10 THEN 2 …

基于CNN+数据增强+残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)+数据集+模型(二)

系列文章目录 基于CNN数据增强残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)数据集模型(一) 基于CNN数据增强残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)数据集模型&#xf…

springCould中的Eureka-从小白开始【2】

目录 1.什么是Eureka ❤️❤️❤️ 2. 组件❤️❤️❤️ 3.单机Eureka配置❤️❤️❤️ 4.服务8001服务入住eureka ❤️❤️❤️ 5.消费端80入住到eureka ❤️❤️❤️ 6.集群Eureka配置 ❤️❤️❤️ 7.将Client发布到eureka集群上 ❤️❤️❤️ 8.服务端8002集群搭建…

WPF仿网易云搭建笔记(7):HandyControl重构

文章目录 专栏和Gitee仓库前言相关文章 新建项目项目环境项目结构 代码结果结尾 专栏和Gitee仓库 WPF仿网易云 Gitee仓库 WPF仿网易云 CSDN博客专栏 前言 最近我发现Material Design UI的功能比较简单,想实现一些比较简单的功能,比如消息提示&#xff0…

netty-daxin-3(rpc远程调用)

文章目录 nettyRpcObjectEncoder 与 ObjectDecoderjdk动态代理回顾Rpc调用过程简析服务端客户端 nettyRpc ObjectEncoder 与 ObjectDecoder ObjectEncoder继承自MessageToByteEncoder<Serializable>&#xff0c;它内部使用ByteBufOutputStream包装ByteBuf对象&#xff…

【Image】图像处理

计算机视觉 CV Perception 如自动驾驶领域。 只要是从所谓的图像当中去抽取信息的过程&#xff0c;我们都叫做Perception。 视觉检测可以涵盖二维检测&#xff0c;如车辆、人和信号灯的检测。另外&#xff0c;还可以控制三维信息&#xff0c;直接在三维空间中操作数据。 SL…

spring MVC概述和土门案例(无配置文件开发)

SpringMVC 1&#xff0c;SpringMVC概述2&#xff0c;SpringMVC入门案例2.1 需求分析2.2 案例制作步骤1:创建Maven项目步骤2:补全目录结构步骤3:导入jar包步骤4:创建配置类步骤5:创建Controller类步骤6:使用配置类替换web.xml步骤7:配置Tomcat环境步骤8:启动运行项目步骤9:浏览器…

<软考>软件设计师-5计算机网络(总结)

1 网络功能和分类 1-1计算机网络的功能 计算机网络是计算机技术与通信技术相结合的产物&#xff0c;它实现了远程通信、远程信息处理和资源共享。计算机网络的功能:数据通信、资源共享、负载均衡、高可靠性。 1-2计算机网络按分布范围划分 1-3网络的拓扑结构 总线型&#xff0…