2012-08-09 63 views
0

我試圖根據文本數據是否包含字符「 - 」來有條件地格式化文本數據「紅色」或「黑色」。文本生成爲文件,並且是.shtml文件中的「包含」。javascript條件運算符格式文本

你可以在條件運算符中使用正則表達式模式測試嗎?

我在做什麼錯?

function colourful(a,b,c) 
{ 
    var colour, pat, place,label,linkto; 
    pat=new RegExp("-"); 
    place= a; 
    label= b; 
    linkto=c; 
    colour=pat.test(label)?"red":"black"; 
    document.getElementById(place).innerHTML=label.fontcolor(colour); 
    document.getElementById(place).href=linkto; 
} 

示例函數調用;

colourful("in_the_document","£1,199.09","profit.shtml"); 
colourful("in_the_document","-£1,199.09","profit.shtml"); 
+0

看起來您的RegExp比較是正確的。會不會有其他問題?你看到的問題到底是什麼? – 2012-08-09 16:49:29

回答

1

您可以使用yourstring.indexOf("-")來測試一個字符串是否包含某個字符串/字符。如果返回-1該字符串不包含該字符,否則它將返回第一個發生的索引。

我猜你的代碼是:

colour = label.indexOf("-") === -1 ? "red" : "black"; 
1

正如Christofer Eliasson說,你可以使用的indexOf。 但是,如果你想使用RegExp,你有search

colour = label.search(/-/) === -1 ? "red" : "black"; 

它用繩子也工作:

colour = label.search("-") === -1 ? "red" : "black"; 

test()應該工作了。我試過你的代碼,它適用於我。

+0

這與我想要的完全一樣。謝謝。 – 2012-08-10 17:03:42