PHP RegEx строка Заменить - PullRequest
       3

PHP RegEx строка Заменить

0 голосов
/ 02 июня 2010

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

var illegalChars = /[\(\)\<\>\,\;\:\.\~\@\#\$\!\%\^\&\*\'\?\(\)\+\=\{\}\`\\\/\"\[\]]/gi;  
var siteSuggest = $(this).val().toUpperCase().split(' ').join('').replace(new RegExp(illegalChars), "");

Итак, в общем, я хочу удалить все недопустимые символы глобально, удалить пробелы и использовать заглавную букву для переменной, так как переменная будет использоваться для создания базы данных или таблицы в sql.

Ответы [ 2 ]

10 голосов
/ 02 июня 2010

Честно говоря, я думаю, что вам лучше указать хорошие символы, чем пытаться найти все плохие символы (в конце концов, есть множество не-ASCII символов, о которых вы забыли). Я бы сделал что-то вроде:

$regex = '#[^a-z0-9_]#i';
$val = preg_replace($regex, '', $val);
$val = strtoupper($val);

Это регулярное выражение будет содержать допустимые символы в виде букв, цифр и _. Если вам нужно больше, просто добавьте их в класс персонажа. Нет необходимости разбивать пробел, так как регулярное выражение будет совпадать с пробелами (^ в начале класса символов - это отрицание) ...

Вы можете настроить JS следующим образом:

var illegalChars = /[^a-z0-9_]/gi;
var siteSuggest = $(this).val().replace(new RegExp(illegalChars), '').toUpperCase();
0 голосов
/ 02 июня 2010

$illegal_chars = array(' ', ';', '~', '@', ...);
strtoupper(str_replace($illegal_chars, '', $value));

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