1
這不是其中的一個「幫我構建我的正則表達式」的問題。我有一個HTML表單輸入字段,用戶可以以各種格式提供地理位置數據。以下正則表達式在regexr.com以及我的應用程序中正常工作。但是,我想在提交之前使用HTML5的「模式」參數來額外驗證用戶的輸入。 。HTML5使用包含引號的模式驗證文本輸入
((([E|W|N|S](\s)?)?([\-]?[0-1]?[(0-9)]{1,2})[°][ ]?([(0-5)]?[(0-9)]{1})([\.|,][0-9]{1,5})?['][ ]?([0-5]{0,1}[0-9]?(([\.|\,])[0-9]{0,3})?)([\"]|[']{2}){0,1}((\s)?[E|W|N|S])?)|([-]?[1]?[0-9]{1,2}[\.|,][0-9]{1,9}))
的一點是,這個正則表達式包含引號(「)現在,我把這個正則表達式在我的輸入是這樣的:
<input type="text" pattern = "regex..."...." />
瀏覽器不能識別這個表達式也不要做任何驗證可言,所以很明顯,我需要逃脫報價我試了一下,到目前爲止:。
- PHP的和addslashes()函數轉義字符太多
- 我通過單個反斜線逃脫報價
這並沒有改變任何東西。我使用Chrome進行測試,使用簡單的正則表達式可以正常工作。上面的那個顯然太複雜了。
我知道上面的正則表達式對於匹配座標來說並不完美,但是,這裏不討論這個問題。我只想知道如何正確地轉義HTML5中的模式,因爲Chrome不會對該正則表達式做任何事情。
謝謝,這就是解決方案...即使我經常使用htmlentities()來顯示數據,它並沒有發生在我身上,我可以用它來編碼我的正則表達式模式......非常感謝! – user3205494