2012-03-01 3 views
1
var regExpress = "/^([a-zA-Z0-9\!\@\#\$\%\^\&\*\(\)\-\+\=\|\}\{'\"\;\:\?\/\.\,\s]*)/i"; 

if (strMessage.search(regExpress) == -1) { alert("error occurs"); } 

Я хочу разрешить почти все символы. Я хочу использовать его из-за некоторой проблемы с форматированием из другого приложения. Поэтому всякий раз, когда пользователь режет и вставляет из другого приложения, , он вызывает добавление какого-то странного персонажа, который мне нужно позаботиться об этом. Но каждый раз, когда я возвращаю -1, это неверно.javascript регулярное выражение, что я делаю неправильно?

Что не так в этом регулярном выражении?

+2

Вы являетесь * массовым * чрезмерным побегом. Это бессмысленно избегать каждого персонажа. '/^([a-zA-Z0-9! @ # $%^& *() \ - + = |} {'";:? /., \ s] *)/i' является вашим регулярным выражением. – Tomalak

+0

Так или иначе, я теряю знак доллара в конце, и я думаю, что 'search()' должен быть 'match()' вместо этого. –

ответ

2

Не сгибайте процитировать выражение, удалить кавычки, например:

var regex = /.../i; 
+0

wow ... он сделал трюк. – ana

0
var myNewString = strMessage.replace(/[^A-Z0-9]+/i, ""); 

Заменить символы внутри скобок после ^ с тем, что вы хотите разрешить.

+0

Это не то же самое, что "ошибка возникает" , и на самом деле не отвечает на вопрос. –

+0

В чем же вопрос? Опубликованное регулярное выражение недопустимо: они не принадлежат кавычки в JavaScript. Так вы можете удалить символы с помощью регулярного выражения. – LandonSchropp

+0

Хотя это правда, ваше регулярное выражение и замена не согласуются с вопросом ... –

Смежные вопросы