Удалить недопустимый символ из определенного шаблона в php - PullRequest
0 голосов
/ 22 сентября 2010

У меня есть текстовое поле, в котором пользователь может ввести любой символ, который он / она хочет.Но на сервере у меня есть шаблон строки [a-z0-9] [a-z0-9 + .-] *, если какой-либо символ в значении из текстового поля не соответствует шаблону, то я должен удалитьэтот символ из этой строки.Как я могу сделать это в php.есть ли для этого какие-нибудь функции?

Заранее спасибо.Говри Санкар

Ответы [ 5 ]

4 голосов
/ 22 сентября 2010

.. в PHP мы используем регулярные выражения с preg_replace. Здесь у вас есть помощь с примерами ... http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/

это то, что вам нужно:

$ new_text = preg_replace ('# [^ A-Za-z + .- 0-9] #s', '', $ text);

3 голосов
/ 22 сентября 2010

Просто используйте preg_replace с разрешенным шаблоном отрицательным.

Например, если вы разрешаете a до Z и пробелы, вы просто отрицаете это, добавляя ^ к классу символов:

echo preg_replace('/[^a-z ]*/i', '', 'This is a String !!!');

Вышеприведенное вывело бы: Это строка (без восклицательных знаков).
Таким образом, он удаляет любой символ, который не является буквой Z или пробелом, например ваш шаблон отрицается.

1 голос
/ 22 сентября 2010

Попробуйте это:

$strs = array('+abc123','+.+abc+123','abc&+123','#(&)');
foreach($strs as $str) {
    $str = preg_replace('/(^[^a-z0-9]*)|([^a-z0-9+.-]*)/', '', $str);
    echo "'",$str,"'\n";
}

Вывод:

'abc123'
'abc+123'
'abc+123'
''
1 голос
/ 22 сентября 2010

Как насчет:

$ string = 'Быстрый тест & * (^ & для вас это должно сработать';

$ searchForThis = '/ [^ A-Za-z \ s] / ';

$ replaceWithBlank =' ';

echo preg_replace ($ searchForThis, $ replaceWithBlank, $ string);

0 голосов
/ 22 сентября 2010
str_replace('x','',$text);
...