2012-07-08 150 views
0

我在RegEx很可怕,我需要一个正则表达式来测试某个字符串是否以某种方式结束。例如,如果RegEx测试以foo结尾,“somestringfoo” - > True和“someotherFoostring” - > False。它需要区分大小写,并使用字母数字和下划线。下面是我得到了什么,但我不能得到它的工作:RegEx测试字符串结尾?

var test = RegExp.test('/foo$/'); 

回答

1

test是正则表达式对象的一种方法,所以它将是/foo$/.test(someString)new Regexp("foo$").test(someString)

但是,测试以某个子字符串结尾的字符串不需要正则表达式,请参见endsWith in JavaScript

+0

非常感谢!我不知道! – 2012-07-08 15:49:13

1

本应该做的工作:

function isFoo(string){ 
    var pattern = /foo$/; 
    return pattern.test(string); 
} 
2

你会做这种方式:

/foo$/.test("somestringfoo") 
+0

我试图使用,但我得到无效的正则表达式: 如果(/ <跨度ID = “lastmessage” 风格= “显示:无;”>斯蒂芬 $ /测试(xmlhttp.responseText)。){ 为mySound。玩(); } – 2012-07-08 15:39:48

+0

这是一个无效的正则表达式,是的。你当然需要逃避分隔符。 – Bergi 2012-07-08 15:43:18

+0

@Stephen如果你不需要正则表达式的特性,但只需要一个普通的字符串匹配,你应该使用简单的字符串操作:'str.substr(-pattern.length)=== pattern'。 – Gumbo 2012-07-08 15:43:48