2012-08-09 2 views
0

문자 "-"가 포함되어 있는지 여부에 따라 조건부로 텍스트 데이터의 형식을 '빨강'또는 '검정'으로 지정하려고합니다. 텍스트는 파일로 생성되며 .shtml 파일에 '포함'됩니다.자바 스크립트 조건부 연산자 형식 텍스트

조건부 연산자에서 정규식 테스트를 사용할 수 있습니까?

내가 뭘 잘못하고 있니?

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 비교가 정확하다고 보입니다. 다른 문제가있을 수 있습니까? 당신이 보는 문제는 정확히 무엇입니까? –

답변

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

이것은 내가 원하는만큼 정확하게 작동합니다. 감사. –