2
我想驗證使用Adobe CQ5一個文本框內部的URL,所以我設置的屬性正則表達式和regexText像往常一樣,但由於某種原因不能正常工作:設置正則表達式驗證在Adobe CQ5 URL格式
<facebook
jcr:primaryType="cq:Widget"
emptyText="http://www.facebook.com/account-name"
fieldDescription="Set the Facebook URL"
fieldLabel="Facebook"
name="./facebookUrl"
regex="/^(http://www.|https://www.|http://|https://)[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(/.*)?$/"
regexText="Invalid URL format"
xtype="textfield"/>
因此,當我在組件內部I型可以在控制檯中看到的錯誤消息:
Uncaught TypeError: this.regex.test is not a function
爲了更準確的錯誤來源於此行:
if (this.regex && !this.regex.test(value)) {
我試了正則表達式和他們沒有工作。我想這個問題是正則表達式本身,因爲在另一方面,我有這等正則表達式來評估電子郵件地址,和它的作品完美的罰款:
/^[A-za-z0-9]+[\\._]*[A-za-z0-9]*@[A-za-z.-]+[\\.]+[A-Za-z]{2,4}$/
有什麼建議?提前致謝。
看起來'/'是工具中的分隔符。在你的正則表達式中,你使用「http://」,所以我的猜測是'//'的第一個斜槓被解釋爲正則表達式的結尾。其餘的則會引發一個錯誤......是否有某種方法可以避免使用您的語言中的斜槓? – fkorsa
我試着按照你的建議修改正則表達式: ^(http:\/\/www。| https:\/\/www。| http:\/\/| https:\/\ /] [a-z0 -9] +([ - ] {1} [A-Z0-9] +。)* [AZ] {2,5-}。?(:[0-9] {1,5})(\ /.* )?$ 但是相同的結果:( –
我在C++中試過了你的正則表達式,它工作得很好,也許試着兩次跳過斜線,就像這樣:「http:\\/\\\ /」? – fkorsa