2017-10-10 97 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来匹配多个线路

注:此正则表达式将返回整条生产线

相关问题