Регулярное выражение для Firefox и Chrome - PullRequest
1 голос
/ 28 апреля 2011

Следующее регулярное выражение работает с 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 ]

1 голос
/ 28 апреля 2011

Вы используете объект RegExp для создания другого объекта RegExp, который не должен работать ни в одном браузере.Просто используйте строку:

var regex = "^[A-Za-z0-9\*]{1}+[A-Za-z0-9[:blank:]]*";
var regExpr = new RegExp(regex);
0 голосов
/ 28 апреля 2011

Ваша проблема в этом бите: {1}+

С {1} вы указываете ровно один из предыдущих пунктов .... но затем с + вы указываете один или несколько из них. Они конфликтуют друг с другом.

В зависимости от ваших требований, вам нужно сбросить {1} или +.

Если вы удалите одну или другую из них, код работает в Firefox. (протестировано с использованием Firebug)

Однако, как говорит @Guffa, у вас, кажется, есть какая-то странная логика, когда вы создаете один объект регулярного выражения из другого - он действительно работает, но на самом деле это не очень хорошо, и может вызвать другие проблемы (Я еще не пробовал в Chrome).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...