2011-05-06 133 views
0

我有以下的javascript功能:字符串匹配(JavaScript)的

function fun1() 
{ 
... 
return 'Over'; 
} 
function fun2() 
{ 
... 
return 'Hello'; 
} 
function fun3() 
{ 
.. 
return 'Over'; 
} 

function fun4() 
{ 
.. 
return 'Over'; 
} 
function fun5() 
{ 
... 
return 'Bye'; 
} 
.... 
var errmsg=''; 

errmsg+=fun1(); 
errmsg+=fun2(); 
errmsg+=fun3(); 

var newmsg = errmsg; 

if (newmsg.match('Over')) 
{ 
checklist(); 
} 

從而每代碼,如果FUN1()和FUN2()都爲真,ERRMSG = 'OverHello',並且如果FUN1()和fun3()是真實的,errmsg ='OverOver'

我希望newmsg只與返回'Over'的函數匹配......所以如果errmsg ='Over'或'OverOver'等等,那麼只需要它會運行函數checklist()。

有沒有什麼辦法,我可以用字符串方法(比如match,contains等)來檢查這個條件嗎?

請幫忙。

回答

1

下面的測試應該解決您的要求:

errmsg.match(/^(Over)+$/) 
+0

+1我在答案中忘記了^&$。但請注意,這將返回匹配的字符串,而不是真/假。 – 2011-05-06 07:23:33

+0

Thx這麼多!我的問題解決了:D – gin 2011-05-06 07:26:19

2

javascript中的字符串對象有一個match()函數。

你可以用它如下

var pattern=/over/gi; 
alert(errmsg.match(pattern)); 
+0

THX Ammu。但是這個函數與我在代碼中已經使用的類似。:) – gin 2011-05-06 07:18:50

+0

實際上,我們正在向match()函數傳遞一個正則表達式,以便它可以返回errmsg中「over」的所有出現。試試這個片段。 var str =「HelloOver」; (str.match(/ over/gi)); //這將提醒---- alert(str.match(over)); //這將不會返回 – Ammu 2011-05-06 07:28:23

+0

啊!你是對的。我試了一下,它就像一個魅力! Thx Ammu – gin 2011-05-06 08:33:50

0

也許你可以替換字符串中的所有「過度」的文字。如果有任何文本該操作後留下的,你的字符串包含的東西比「過」在一起,你的支票返回false

+0

Thx Dev。我會嘗試你的想法。希望它能工作:) – gin 2011-05-06 07:17:38

+0

你能告訴我如何在這種情況下使用替換功能? Thx – gin 2011-05-06 07:20:19

+0

@Gin:嘗試str.replace(/ over/gi,「」) – 2011-05-06 07:33:41