2016-04-30 10 views
9

मैं HTML5 फॉर्म सत्यापन के लिए रेगेक्स पैटर्न मिलान का उपयोग कर रहा हूं। फ़ायरफ़ॉक्स का नवीनतम संस्करण मुझे एक त्रुटि देता है। मैंने केवल इसे फ़ायरफ़ॉक्स 46 में देखना शुरू कर दिया। मुझे नहीं लगता कि यह पहले फ़ायरफ़ॉक्स संस्करणों में एक समस्या थी।फ़ायरफ़ॉक्स त्रुटि: इनपुट जांचने में असमर्थ क्योंकि पैटर्न वैध regexp नहीं है: नियमित अभिव्यक्ति में अमान्य पहचान से बच

Unable to check <input pattern='[\@\%]'> because the pattern is not a valid regexp: invalid identity escape in regular expression

इस बहुत ही साधारण परीक्षण मामले की वजह से:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"> 
    </head> 
    <form> 
    <input pattern="[\@\%]"> 
    </form> 
</html> 

क्यों इन पात्रों एक त्रुटि माना बचने रहा है? मैं हमेशा अपने नियमित अभिव्यक्तियों में सबकुछ से बच निकला हूं जो संख्या या एक पत्र नहीं है। फ़ायरफ़ॉक्स के इस संस्करण को छोड़कर मैंने कभी इस तरह के बच निकले चरित्र की शिकायत नहीं की है।

जब मैंने रेगेक्स सीखा, तो मुझे बताया गया कि जो कुछ भी संख्या या पत्र नहीं था, उसका विशेष अर्थ हो सकता है। यहां तक ​​कि यदि यह अब नहीं है, तो यह भविष्य के संस्करण में हो सकता है, इसलिए उनसे बचना बेहतर है। क्या यह सच नहीं है?

क्या अक्षरों की एक सूची है जिसे मुझे फ़ायरफ़ॉक्स के लिए नहीं बचना चाहिए?

+0

_sidenote_: -: //www.fxsitecompat आप के रूप में वे किसी भी विशेष अर्थ – rock321987

उत्तर

4

यह निम्न परिवर्तन के कारण है: Bug 1227906 - HTML pattern attribute should set u flag for regular expressions

के रूप में कोई पहले से ही कहा है, आप उन अक्षरों से बचने के लिए नहीं है। बस का उपयोग करें:

<input pattern="[@%]"> 
+0

प्रकाशित किया गया था [साइट अनुकूलता डॉक] (https नहीं है चरित्र कक्षा में उन अक्षरों से बचने के लिए की जरूरत नहीं है। कॉम/एन-सीए/डॉक्स/2016/इनपुट-पैटर्न-अब-सेट-यू-फ्लैग-फॉर-नियमित-अभिव्यक्ति /) इसके लिए। –

+0

[संबंधित जिथब मुद्दा] (https://github.com/whatwg/html/issues/439) अब भी फिर से खोल दिया गया है। – sideshowbarker

+0

कोई विचार नहीं कि आप यूनिकोड रेगेक्स मोड में उन पात्रों से क्यों नहीं बच सकते हैं? –

संबंधित मुद्दे