浅谈 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu系统查看gcc版本及版本切换[通俗易懂]

    ubuntu系统查看gcc版本及版本切换[通俗易懂]写在前面:自己的测试环境是Ubuntu16.04,安装了gcc-5、gcc-7,通过下面的方式从实现默认的gcc-5切换到gcc-7,亲测有效~~1.查看自己当前的gcc版本gcc-v通过下图的最后一行可以得到,这里电脑当前gcc的版本是5.42.安装另一个版本gcc我这里安装的是gcc-7sudoadd-apt-repositoryppa:ubuntu-toolch…

    2022年6月26日
    159
  • sqlserver中日期转字符串「建议收藏」

    sqlserver中日期转字符串「建议收藏」SelectCONVERT(varchar(100),GETDATE(),0):0516200610:57AMSelectCONVERT(varchar(100),GETDATE(),1):05/16/06SelectCONVERT(varchar(100),GETDATE(),2):06.05.16SelectCONVERT(varchar(100),GETDATE(),3):16/05/06SelectCONVERT(varchar(10.

    2022年10月8日
    4
  • win10共享打印错误0x0000006_win10共享打印机出现错误代码0X0000000d怎么办 打印机无法打印的解决步骤…[通俗易懂]

    win10共享打印错误0x0000006_win10共享打印机出现错误代码0X0000000d怎么办 打印机无法打印的解决步骤…[通俗易懂]win10系统查找打印机提示错误代码0x0000000d怎么办?此问题解决非常简单,只要“添加打印机”即可,下面有详细的安装步骤,一起看看吧!错误代码0x0000000d的解决方法步骤1、点击win10系统的开始/控制面板/打印机;win10系统查找打印机提示错误0x0000000d的解决方法2、选择“添加打印机”;3、选择“添加本地打印机”,按一下步;4、选择“创建新端口”/选择“local…

    2022年5月14日
    147
  • 小Y的难题

    小Y的难题

    2021年12月4日
    47
  • arping指令linux,arping

    arping指令linux,arping例a,指定IP发送ARP请求[root@Blackghost~]arping192.168.1.11ARPING192.168.1.11from192.168.1.6eth0Unicastreplyfrom192.168.1.11[08:00:27:7e:b8:08]2.780msUnicastreplyfrom192.168.1.11[08:00:27:7e:b8…

    2022年6月10日
    45
  • 运行时错误10048,地址已在使用_winerror193不是有效的

    运行时错误10048,地址已在使用_winerror193不是有效的图片就不放了,这个问题你肯定在代码中用到了**IP地址和端口**,如果没有请绕过。这时你主要找准自己的IP和端口替换上去就行。查找自己电脑IP和端口的方法:**第一步:Win+R****第二步:输入:cmd然后点击确定(Enter)进入****第三步:输入:ipconfig然后Enter**如图就是你的IP。第四步:输入:netstat然后Ente…

    2022年9月30日
    5

发表回复

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

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