3 回答

TA貢獻1810條經(jīng)驗 獲得超5個贊
因為它是正則表達式,所以里面的所有字符[.....]都是允許的,所以你應該在那里加上括號。您可以使用轉(zhuǎn)義字符來做到這一點(因為括號在正則表達式中起作用)。所以只需將\]and添加\[到里面允許的字符[.....]。
嘗試:
<input type="password" name="pw" pattern="(?=.*?[#?!@$%^&*-\]\[])"
順便說一句.. 我建議使用正則表達式備忘單,它將在驗證任務中幫助您很多。
至于你的編輯:
和需要逃脫"。'雖然\" \'不起作用,但您可以使用它們\x27,它們是ascii 表中的和\x22的十六進制表示。"'
嘗試:
<form acton = "#">
<input type="password" id="pass" required pattern = "(?=.*\d)(?=.*
[a-z])(?=.*?[0-9])(?=.*?[~`!@#$%\^&*()\-_=+[\]{};:\x27.,\x22\\|/?><]).{4,}">
<button>submit</button>
</form>

TA貢獻1820條經(jīng)驗 獲得超9個贊
\]
如果在模式搜索期間需要匹配正則表達式(例如 )字符,您應該轉(zhuǎn)義它們。另外,請參閱現(xiàn)有答案:
以下對我有用,希望它對你有用:(我只是添加了轉(zhuǎn)義字符)
<input type="password" id="newPass" required pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*?[0-9])(?=.*?[!@#$%^&*+`~'=?\|\]\[\(\)\-<>/]).{8,}">

TA貢獻1868條經(jīng)驗 獲得超4個贊
你實際上非常接近。最大的錯誤是:
你應該escape
在里面的一些特殊字符character group
并且你應該有hyphen as the last character
(否則它是一個范圍)。
這是您要求的 RegExp:
<input type="password" id="pass" required pattern = "(?=.*\d)(?=.*[a-z])(?=.*?[0-9])(?=.*?[~`!@#$%^&*()_=+\[\]{};:'.,"\\|\/?><-]).{4,}">
更新:我忘了對模式進行 html 編碼以直接在 html 中使用。現(xiàn)在它應該可以工作了。
添加回答
舉報