浅谈 js 字符串 search 方法

浅谈 js 字符串 search 方法这是一个很久以前的事情了,好像是安心兄弟在学习js的时候做的练习。具体记不清了,今天就来简单分析下search究竟是什么用的。从字面意思理解,一个是搜索字符串吧。varstr="1

大家好,又见面了,我是你们的朋友全栈君。

<span role="heading" aria-level="2">浅谈 js 字符串 search 方法这是一个很久以前的事情了,好像是安心兄弟在学习js的时候做的练习。
具体记不清了,今天就来简单分析下 search 究竟是什么用的。

从字面意思理解,一个是搜索字符串吧。

var str = "123456789abcde";
console.log( str.search("abc") ); // 9 

确实是搜索指定字符在一个字符串中出现的位置,如果不存在就返回 -1
可是这样就跟 indexOf 功能一样了,何必单独搞一个 search 出来呢?

var str = "123456789abcde";
console.log( str.search("abc") ); // 9
console.log( str.indexOf("abc") ); // 9
console.log( str.search("xxx") ); // -1
console.log( str.indexOf("xxx") ); // -1

点击右侧运行可查看输出结果。

其实区别在于 search 是强制正则的,而 indexOf 只是按字符串匹配的。
来看一个例子:

var str = "123456789.abcde"; // 比刚才多了一个 . 而已
console.log( str.search(".") );    // 0  因为正则 . 匹配除\n以外任意字符
console.log( str.indexOf(".") );   // 9  只能匹配字符 .
console.log( str.search("\\.") );  // 9  相当于 new RegExp("\\.")
console.log( str.indexOf("\\.") ); // -1 匹配字符 \. 所以不存在
console.log( str.search(/\./) );   // 9  正则匹配转以后的 . 字符
console.log( str.indexOf(/\./) );  // -1 相当于匹配字符串 "/\./" 所以不存在

这个例子可以很好的说明 search 强制正则匹配模式。
来看下 MDN 上是怎么说的吧《String.prototype.search()
可以看到他给出的语法是 str.search(regexp) 格式,说明参数必须是正则,如果不是正则,也会调用 new RegExp(obj) 转为正则的。

好了,今天的分享就这些了。明天见。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155279.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL-深入分析MySQL ERROR 1045出现的原因

    MySQL-深入分析MySQL ERROR 1045出现的原因1

    2022年6月14日
    20
  • Elasticsearch数据库下载

    Elasticsearch数据库下载地址:https://www.elastic.co/downloads/past-releases转载于:https://www.cnblogs.com/xueershewang/p/9792788.html

    2022年4月30日
    55
  • SpringBoot 面试题及答案

    SpringBoot 面试题及答案文章目录1.什么是SpringBoot?2.SpringBoot有哪些优点?3.什么是JavaConfig?4.如何重新加载SpringBoot上的更改,而无需重新启动服务器?5.SpringBoot中的监视器是什么?6.如何在SpringBoot中禁用Actuator端点安全性?7.如何在自定义端口上运行SpringBoot应用程序?8.什么是YAML?9.如何实现SpringBoot应用程序的安全性?10.如何集成SpringBoot和Activ

    2022年5月21日
    38
  • 傅里叶变换 意义_傅里叶变换表达式

    傅里叶变换 意义_傅里叶变换表达式看到论坛有一个朋友提问为什么傅里叶变换可以将时域变为频域?这个问题真是问到了灵魂深处。在这我只能简单讲讲我的理解,要深刻理解翻信号处理教科书是最好的方法。1.如何描述信号我们常常用数学模型去抽象物理事件。信号也可以用数学模型来表示。有了信号的数学模型,我们就可以利用数学计算对信号模型做各种各样的改变。如果加以计算机,模电,数电的相关知识,我们就可以将我们对信号模型的改变转换为对物理信号的…

    2022年10月20日
    0
  • python正则表达式匹配中文(Excel如何根据名字匹配编码)

    字符串的编码乱码问题由来已久,真的是令人头疼。这不是在做正则匹配中文时候,编码又一次成了拦路虎,在这儿记录两点。第一,字符串编码。第二,正则匹配中文。早期编码都用ASCII编码,用一个字节来处理编码。如大写A编码为65,但处理中文时候,一个字节显然不够,至少两哥字节,还不能和ASCII冲突,,中国制定GB2312编码,把中文编进去。类似的,韩国,日本都出来格子标准,结果就是多语言混合的文本中会

    2022年4月15日
    44
  • python导入鸢尾花数据集_python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析…

    #2018-04-0516:57:26AprilThursdaythe14week,the095daySZSSMRpython数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析1.鸢尾花数据集可视化分析2.线性回归分析鸢尾花花瓣长度和宽度的关系3.决策树分析鸢尾花数据集4.Kmeans聚类分析鸢尾花数据集一.鸢尾花数据集介绍本章采用Python的Sklea…

    2022年4月16日
    124

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号