2017-10-10 71 views
2

根據標題,我試圖在字符串上使用.match()函數來匹配在該字符串的開始或結尾處出現的實例(但沒有中間的地方)。匹配正則表達式僅在字符串的開始/結束處

例如,在 「測試」 一詞:

x = "1 TEST 1" 
x1 = "TEST 1" 
x2 = "1 TEST" 
x3 = "TEST" 

只有X1,X2和X3應該匹配正則表達式。目前,我有:

.toUpperCase().match(/(TEST)/) 

這將匹配「測試」的每個實例。我試過使用^和$修飾符,但它們只會匹配x3。然而,這一個:`

.toUpperCase().match(/(TEST)$/) 

將匹配X2和X3只,只有.toUpperCase().match(/^(TEST)/)匹配X1和X3。

回答

5

只需使用|就可以匹配一個或另一個。

.toUpperCase().match(/^TEST|TEST$/)

另外請注意,你不需要把周圍TEST括號。

+2

這可能取決於你的使用情況了一點,但你可以跳過'.toUpperCase()',只是讓比賽情況不敏感:'.match(/^TEST | TEST $/i)' – benschumacher

+0

感謝您的幫助!這對於大小寫敏感的@benschumacher來說是一個很棒的提示,謝謝 –

0
/^TEST.*|.*TEST$/ 

如果開頭或以「TEST」結束這個表達式將匹配行。添加m來匹配多個線路

注:此正則表達式將返回整條生產線

相關問題