2010-11-25 136 views
0

我正在写一个正则表达式函数,以便我可以测试一个字符串的几个选项。Javascript正则表达式来检查符合字符串的前后字符

这里是我想要搜索的字符串的一些例子。

5.6 - 6.6* 
5.6 - 6.6(4) 
<5.6 - 6.6** 

基本上我想实现的是任何这些选项的字符串匹配。请记住,在这种情况下,我传递了一个类似于(5.6 - 6.6)的变量。我的一些价值观最后有“*”,有些则没有,所以我需要测试他们做或不做的时间。但仍然需要一场比赛。

MY CODE WHICH WORKS ON "5.6 - 6.6*" 

fieldValuesArray[0] = "5.6 - 6.6" 

myregexp = new RegExp("\\b(<)?"+ fieldValuesArray[0]+"(\\*\\(\\)1234)?\\b") 

testRegEx = myregexp.test("<5.6 - 6.6**") 
    if(testRegEx == false){ 
    hide = "yes" 
} 

它的工作原理时,有没有“<”的beggining但是当有一个它不会找到价值。

希望有人能帮忙。

回答

1

您必须记住您正在检查的字符串中也有正则表达式字符,即'。'字符,这意味着它将匹配任何字符,所以“5^6 - 6 $ 6”将匹配以便那些需要转义(用作'。'以匹配文字时间段)。

,以配合您的三个例子下面的工作:

.*?5\.6\s-\s6\.6(\*+|\(\d*\)) 

你可以看到有我逃过时期和特定白色空间,而不仅仅是空格字符。这确保了字符串中有一个空格字符,而不是它在正则表达式中的空白字符。

相关问题