Firefox和Chrome的正则表达式

时间:2011-04-28 11:48:15

标签: javascript regex firefox google-chrome

以下正则表达式正在使用Internet Explorer,但它不适用于Firefox或Chrome。

function CheckValidText(comment) {
    var regex = new RegExp("^[A-Za-z0-9\*]{1}+[A-Za-z0-9[:blank:]]*");
    var regExpr = new RegExp(regex);

    var result = comment.search(regExpr);
    if (comment.search(regExpr) != -1) {
        return true;
    }
    else {
        return false;
    }
 }

2 个答案:

答案 0 :(得分:1)

您正在使用RegExp对象创建另一个RegExp对象,该对象不应在任何浏览器中运行。只需使用字符串:

var regex = "^[A-Za-z0-9\*]{1}+[A-Za-z0-9[:blank:]]*";
var regExpr = new RegExp(regex);

答案 1 :(得分:0)

你的问题是:{1}+

使用{1},您只需指定前一项中的一项....但随后使用+,您将指定其中一项或多项。他们彼此冲突。

根据您的要求,您需要放弃{1}+

如果删除其中一个或其他代码,则代码在Firefox中可以正常工作。 (使用Firebug测试)

然而,正如@Guffa所说,你似乎有一些奇怪的逻辑,你从另一个创建一个正则表达式对象 - 它似乎确实有效,但它确实不是一件好事,可能会导致其他问题(我还没有在Chrome中试过它。)