你需要搜索一個(gè)字符串,并返回匹配的起始位置或匹配值本身。
有幾種使用正則表達(dá)式的方法來實(shí)現(xiàn)這個(gè)功能。其中一些方法被稱為 RegExp 模式或?qū)ο筮€有一些方法被稱為 String 對(duì)象。
第一種方式是在 RegExp 模式或?qū)ο笾姓{(diào)用 test 方法。test 方法返回一個(gè)布爾值:
match = /sample/.test("Sample text")
# => false
match = /sample/i.test("Sample text")
# => true
下一種方式是在 RegExp 模式或?qū)ο笾姓{(diào)用 exec 方法。exec 方法返回一個(gè)匹配信息的數(shù)組或空值:
match = /s(amp)le/i.exec "Sample text"
# => [ 'Sample', 'amp', index: 0, input: 'Sample text' ]
match = /s(amp)le/.exec "Sample text"
# => null
match 方法使給定的字符串與表達(dá)式對(duì)象匹配。有 “g” 標(biāo)識(shí)的返回一個(gè)包含匹配項(xiàng)的數(shù)組,沒有 “g” 標(biāo)識(shí)的僅返回第一個(gè)匹配項(xiàng)或如果沒有找到匹配項(xiàng)則返回 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 方法以字符串匹配正則表達(dá)式,且如果找到的話返回匹配的起始位置,未找到的話則返回 -1 。
"Watch out for the rock!".search /for/
# => 10
"Watch out for the rock!".search /rof/
# => -1
正則表達(dá)式是一種可用來測(cè)試和匹配子字符串的強(qiáng)大的方法。