我對HTML pattern="[a-zA-Z0-9-_. ]{1,30}"
中的模式有此示例。這意味着只允許使用字母數字和-_.
,但我想製作一個像preg_replace
這樣的模式,它允許所有內容但不是[ <>/\:*?"|]
。在HTML輸入中使用模式屬性
那麼我該怎麼辦呢?
我對HTML pattern="[a-zA-Z0-9-_. ]{1,30}"
中的模式有此示例。這意味着只允許使用字母數字和-_.
,但我想製作一個像preg_replace
這樣的模式,它允許所有內容但不是[ <>/\:*?"|]
。在HTML輸入中使用模式屬性
那麼我該怎麼辦呢?
你可以嘗試以下方法:
$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 />
的^
運營商在字符類將否定整個班級,所以你可以使用:
[^<>/\:*?"|]
將匹配一切除了這些字符的字符內類。請記住,如果pattern
屬性的周圍引號也是"
,則可能必須轉義"
。在正則表達式
我認爲這些角色的一些必須逃脫讓他們工作。 – Hexodus 2013-04-23 18:32:21
@Hexodus真的很看重上下文。但是,'''可能需要轉義,如果周圍的引號是'''。 – 2013-04-23 18:34:18
負值字符類做過這樣的:[^characters to exclude]
注意^
只是[
內,這是什麼使得它一負。
這就是說,你應該跟你有什麼堅持,否則你會得到我這樣的人試圖進入ヴィックサ一個名字:P
但是如果我的名字是ヴィックサ? :(不是) – 2013-04-23 18:24:09
然後你把它羅曼蒂克給Vixor;) – 2013-04-23 18:24:48
大家好,tahnks的答案,但我不是在談論在PHP代碼中的正則表達式我正在討論把正則表達式放在HTML模式中,我嘗試過使用char ^來排除一些字母,但它沒有在HTML模式中工作... – user2303038 2013-04-24 11:42:02
我編輯了我的文章,使其成爲HTML模式。 – AdamM 2013-04-24 13:20:31