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的区别(详解)相关推荐

  1. python中search和match的区别_Python中正则表达式match()、search()函数及match()和search()的区别详解...

    match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢? match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找 ...

  2. 关于numpy中eye和identity的区别详解

    https://www.jb51.net/article/175386.htm np.identity(n, dtype=None) np.eye(N, M=None, k=0, dtype=< ...

  3. java throw与throws_基于Java中throw和throws的区别(详解)

    系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...

  4. python request.post 字典参数以json_Python requests.post方法中data与json参数区别详解

    在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json. data与json既可以是str类型,也可以是dict类型. 区别: 1.不管json是 ...

  5. throws java_基于Java中throw和throws的区别(详解)

    系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...

  6. PHP中include和require的区别详解

    PHP中include和require的区别详解 1.概要  require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每 ...

  7. python post json参数,Python requests.post方法中data与json参数区别详解

    在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json. data与json既可以是str类型,也可以是dict类型. 区别: 1.不管json是 ...

  8. python中average什么意思_在Python3 numpy中mean和average的区别详解

    mean和average都是计算均值的函数,在不指定权重的时候average和mean是一样的.指定权重后,average可以计算一维的加权平均值. 具体如下: import numpy as np ...

  9. java里throws详细讲解,基于Java中throw和throws的区别(详解)

    系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...

最新文章

  1. es任务 如何kill_kill进程的方法
  2. java怎么自动提示关键词_Eclipse 实现关键字自动补全功能
  3. Asp.net中的Cache--HttpRuntim.Cache 和 HttpContext.Current.Cache
  4. Form组件,用ajax发送到后台需要的注意事项
  5. 量子计算 qiskit_将Tensorflow和Qiskit集成到量子机器学习中
  6. deferred Transports Protocols 简单介绍
  7. 在线安装php,CentOS在线安装PHP|dayblog-天天博客|PHP交流,PHP技术,PHP博客,博客交流,dayblog,blog,天天博客...
  8. c# uri.host_C#| Uri.CheckHostName()方法与示例
  9. soapUI-JDBC Request
  10. PS将两张图像合成为一张
  11. 核fisher matlab,使用Fisher法matlab结合P值?
  12. 机器学习 - [源码实现决策树小专题]决策树中混杂度数值度量的Python编程实现(信息熵和基尼系数的计算)
  13. 【小白总结】NLP算法:文本研究领域与NLP文本标注工具(一)
  14. 使用Termux进行Linux系统的ubuntu版本安装
  15. VoIP技术的基本原理与应用
  16. 物联网无线通信技术 低功耗WiFi模块 WiFi芯片技术应用
  17. 双问号??在 js 中的应用
  18. 为什么要配置Java环境变量以及Java环境变量的配置
  19. 【技术】python 爬虫一招解决SSl 报错SSLError
  20. 电子商务行业数据集成案例介绍

热门文章

  1. ubuntu 16.04使用IntelRealSense D435i调用realsense ROS包时,报symbol lookup error和undefined symbol错误的解决办法
  2. 网络编程之TCP客户端程序开发
  3. 算法岗面经总结(三角兽科技)
  4. (结构体+指针)(外加自定义车辆数量和选择目标车辆修改)定义“车”结构体,实现改变车颜色,车牌操作。
  5. 怎么通过WSDL命令,将WSDL生成代理类
  6. NTFS文件系统的属性分析
  7. 福尔摩斯探案-有趣的c
  8. 蓝桥杯:暴力拆解算法
  9. 小码哥iOS学习笔记第十二天:Class结构
  10. 数字城市深圳智慧巡查平台功能结构分析【软件测试与工程】