Categories: CoffeeScript 教程

CoffeeScript 查找子字符串

查找子字符串

问题

你需要搜索一个字符串,并返回匹配的起始位置或匹配值本身。

解决方案

有几种使用正则表达式的方法来实现这个功能。其中一些方法被称为RegExp模式或对象还有一些方法被称为 String 对象。

RegExp 对象

第一种方式是在RegExp模式或对象中调用test方法。test方法返回一个布尔值:

match = /sample/.test("Sample text")
# => false

match = /sample/i.test("Sample text")
# => true

下一种方式是在RegExp模式或对象中调用exec方法。exec方法返回一个匹配信息的数组或空值:

match = /s(amp)le/i.exec "Sample text"
# => [ Sample, amp, index: 0, input: Sample text ]

match = /s(amp)le/.exec "Sample text"
# => null

String 对象

match方法使给定的字符串与表达式对象匹配。有“g”标识的返回一个包含匹配项的数组,没有“g”标识的仅返回第一个匹配项或如果没有找到匹配项则返回null。

"Watch out for the rock!".match(/r?or?/g)
# => [ o, or, ro ]

"Watch out for the rock!".match(/r?or?/)
# => [ o, index: 6, input: Watch out for the rock! ]

"Watch out for the rock!".match(/ror/)
# => null

search方法以字符串匹配正则表达式,且如果找到的话返回匹配的起始位置,未找到的话则返回-1。

"Watch out for the rock!".search /for/
# => 10

"Watch out for the rock!".search /rof/
# => -1

讨论

正则表达式是一种可用来测试和匹配子字符串的强大的方法。

冒牌SEO

前端开发者,欢迎大家一起沟通和交流。

Share
Published by
冒牌SEO

Recent Posts

聊聊vue3中的defineProps

在Vue 3中,defineP…

4 天 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

1 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

2 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

3 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

4 周 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

4 周 ago