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");
4

2 回答 2

1

正如Christofer Eliasson所说,您可以使用 indexOf。但如果你想使用RegExp,你有search

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

它也适用于字符串:

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

test()也应该工作。我已经尝试过你的代码,它对我有用。

于 2012-08-09T16:51:00.133 回答
1

您可以yourstring.indexOf("-")用来测试字符串是否包含某个字符串/字符。如果返回-1字符串中不包含字符,否则返回第一次出现的索引。

我猜你的代码是:

colour = label.indexOf("-") === -1 ? "red" : "black";
于 2012-08-09T16:43:26.903 回答