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