在HTML输入中使用pattern属性

时间:2013-04-23 17:41:48

标签: php html html5 input inverse

我在HTML pattern="[a-zA-Z0-9-_. ]{1,30}"中有关于模式的示例。这意味着只允许使用字母数字和-_.,但我想制作一个类似于preg_replace的模式,它允许所有内容而不是[ <>/\:*?"|]

那我该怎么做呢?

3 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

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

输出:

Hello Mister Jean-Samuels how are you_.

修改

以下是HTML模式的JSFiddle

HTML:

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

答案 1 :(得分:0)

字符类中的^运算符将取消整个类,因此您可以使用:

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

除字符类中的那些字符外,它将匹配的所有内容。请注意,如果"属性的周围引号也为pattern,则可能必须转义"

答案 2 :(得分:0)

正则表达式中的负字符类是这样完成的:[^characters to exclude]

请注意^内的[,这就是使其成为负数的原因。

那就是说,你应该坚持你所拥有的,否则你会得到像我这样的人试图进入ヴィックサ的名字:p