javascript中indexOf与search的区别(详解)
1.indexOf方法
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,如果没有找到返回-1。
语法:
stringObject.indexOf(searchvalue,fromindex)
说明:
该方法将从头到尾地检索字符串stringObject,看它是否含有子串searchvalue。开始检索的位置在字符串的fromindex处。如果没有fromindex参数则从字符串的开头检索。如果找到一个searchvalue,则返回searchvalue的第一次出现的位置。stringObjec中的字符串位置是从0开始的。
注意事项
indexOf()方法对大小写敏感。如果要检所的字符串值没有检索到,则返回-1。
var str = "hello world";
console.log(str.indexOf("hello")); ====>0
console.log(str.indexOf("World")); ====>-1
console.log(str.indexOf("world")); ====>6
2.search方法
search方法用于检索字符串中指定的子字符串,活检索与正则表达式相匹配的子字符串。如果没有找到,返回-1。
语法
说明
search() 方法不执行全局匹配,它将忽略标志 g。它同时忽略 regexp 的 lastIndex 属性,并且总是从字符串的开始进行检索,这意味着它总是返回 stringObject 的第一个匹配的位置。
注意事项
search() 方法对大小写敏感!
var str="hello World";
console.log(str.search(/World/)); ====>6
console.log(str.search(/world/)); ====>-1
console.log(str.search(/world/i); ====>6
3.indexOf与search的区别
抛砖引玉:search()方法也是同样返回目标自字符串索引值的。indexOf()和search()有什么区别呢?为什么时候该使用它,什么时候该使用search()这个方法呢?
首先要明确search()的参数必须是正则表达式,而indexOf()的参数只是普通的字符串。indexOf()是比search()更加底层的方法。
如果只是兑一个具体字符串来茶渣检索,那么使用indexOf()的系统资源消耗更小,效率更高;如果查找具有某些特征的字符串(例如查找以a开头,后面是数字的字符串),那么indexOf()就无能为力,必须要使用正则表达式和search()方法了。
大多是时候用indexOf()不是为了真的想知道子字符串的位置,而是想知道长字符串中有没有包含这个子字符串。若果返回索引为-1,那么说明没有,反之则有。
javascript中indexOf与search的区别(详解)相关推荐
- python中search和match的区别_Python中正则表达式match()、search()函数及match()和search()的区别详解...
match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢? match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找 ...
- 关于numpy中eye和identity的区别详解
https://www.jb51.net/article/175386.htm np.identity(n, dtype=None) np.eye(N, M=None, k=0, dtype=< ...
- java throw与throws_基于Java中throw和throws的区别(详解)
系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...
- python request.post 字典参数以json_Python requests.post方法中data与json参数区别详解
在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json. data与json既可以是str类型,也可以是dict类型. 区别: 1.不管json是 ...
- throws java_基于Java中throw和throws的区别(详解)
系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...
- PHP中include和require的区别详解
PHP中include和require的区别详解 1.概要 require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每 ...
- python post json参数,Python requests.post方法中data与json参数区别详解
在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json. data与json既可以是str类型,也可以是dict类型. 区别: 1.不管json是 ...
- python中average什么意思_在Python3 numpy中mean和average的区别详解
mean和average都是计算均值的函数,在不指定权重的时候average和mean是一样的.指定权重后,average可以计算一维的加权平均值. 具体如下: import numpy as np ...
- java里throws详细讲解,基于Java中throw和throws的区别(详解)
系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...
最新文章
- es任务 如何kill_kill进程的方法
- java怎么自动提示关键词_Eclipse 实现关键字自动补全功能
- Asp.net中的Cache--HttpRuntim.Cache 和 HttpContext.Current.Cache
- Form组件,用ajax发送到后台需要的注意事项
- 量子计算 qiskit_将Tensorflow和Qiskit集成到量子机器学习中
- deferred Transports Protocols 简单介绍
- 在线安装php,CentOS在线安装PHP|dayblog-天天博客|PHP交流,PHP技术,PHP博客,博客交流,dayblog,blog,天天博客...
- c# uri.host_C#| Uri.CheckHostName()方法与示例
- soapUI-JDBC Request
- PS将两张图像合成为一张
- 核fisher matlab,使用Fisher法matlab结合P值?
- 机器学习 - [源码实现决策树小专题]决策树中混杂度数值度量的Python编程实现(信息熵和基尼系数的计算)
- 【小白总结】NLP算法:文本研究领域与NLP文本标注工具(一)
- 使用Termux进行Linux系统的ubuntu版本安装
- VoIP技术的基本原理与应用
- 物联网无线通信技术 低功耗WiFi模块 WiFi芯片技术应用
- 双问号??在 js 中的应用
- 为什么要配置Java环境变量以及Java环境变量的配置
- 【技术】python 爬虫一招解决SSl 报错SSLError
- 电子商务行业数据集成案例介绍
热门文章
- ubuntu 16.04使用IntelRealSense D435i调用realsense ROS包时,报symbol lookup error和undefined symbol错误的解决办法
- 网络编程之TCP客户端程序开发
- 算法岗面经总结(三角兽科技)
- (结构体+指针)(外加自定义车辆数量和选择目标车辆修改)定义“车”结构体,实现改变车颜色,车牌操作。
- 怎么通过WSDL命令,将WSDL生成代理类
- NTFS文件系统的属性分析
- 福尔摩斯探案-有趣的c
- 蓝桥杯:暴力拆解算法
- 小码哥iOS学习笔记第十二天:Class结构
- 数字城市深圳智慧巡查平台功能结构分析【软件测试与工程】