2013-04-23 2 views
0

У меня есть этот пример для шаблона в HTML pattern="[a-zA-Z0-9-_. ]{1,30}". Это означает, что разрешены только номера букв и -_., но я хочу сделать шаблон, как в preg_replace, который позволяет все, но не [ <>/\:*?"|].Использование атрибута pattern в HTML-вводе

Итак, как я могу пойти с этим?

ответ

1

Вы можете попробовать следующее:

$test = "Hello [<>/\:*?\"|Mister] Jean-Samuels, how are you?_."; 
echo preg_replace('/[^\d\w-_. ]+/', '', $test); 

Выход:

Hello Mister Jean-Samuels how are you_. 

Edit:

Вот JSFiddle вашего HTML-шаблон.

HTML:

<input title='Enter anything but <, >, /, \, :, *, ?, ", |' 
type='text' 
pattern='[^<>\/\\:*?"|]{1,30}' required /> 
+0

Привет всем, tahnks за ответы, но я не говорю о регулярное выражение в php-коде, я говорю о том, чтобы поместить регулярное выражение в шаблон HTML, который я пробовал раньше, чтобы использовать char ^, чтобы исключить некоторые буквы, но он didnt работал в шаблоне HTML ... – user2303038

+0

Я отредактировал свое сообщение, чтобы сделать его HTML Шаблон. – AdamM

0

^ оператор в классе символов будет отрицать весь класс, так что вы можете использовать:

[^<>/\:*?"|] 

который будет соответствовать всем кроме эти символы внутри символа класс. Имейте в виду, что вам может понадобиться избежать ", если окружающие кавычки для атрибута pattern: ".

+0

Я думал, что некоторые из этих персонажей должны быть убежены, чтобы заставить их работать. – Hexodus

+0

@Hexodus deoends в контексте, действительно. Но да '' ', вероятно, нужно будет экранировать. Если окружающие кавычки' ''. –

0

Негативные классы символов в регулярных выражениях делается так: [^characters to exclude]

Обратите внимание на ^ только внутри [, это то, что делает его отрицательным.

Тем не менее, вы, вероятно, следует придерживаться того, что у вас есть, в противном случае вы получите кого-то, как я пытаюсь войти ヴ ィ ッ ク サ для имени: р

+2

Но что, если мое имя ヴ ィ ッ ク サ? :((Это не так) –

+2

Тогда вы ланизируете его на Vixor;) –

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