2011-11-05 21 views
6

कोड: var foo = /\</;जब मैं एक RegEx में <अक्षर से बचता हूं तो jslint शिकायत क्यों करता है?

जब मैं jslint.com पर जाकर उस में प्रवेश करते हैं, मैं:

Problem at line 1 character 12: Unexpected '\'.

यह मेरे Unexpected escaped character '<' in regular expression. लेकिन समय बदल गया है बताया करते थे।

तो मैं सिर्फ उत्सुक हूं, क्यों? यदि आप var foo = /\>/; आज़माते हैं तो इसकी परवाह नहीं है, < के साथ क्या सौदा है?

+5

से बचने के लिए कोई ज़रूरत नहीं है: उन भाषाओं में, बाईं कोण कोष्ठक और एम्परसेंड पात्रों रैप करने के लिए एक इकाई के प्रतिस्थापन या एक CDATA ब्लॉक का उपयोग "<" चरित्र वहाँ है। जेएसलिंट भी क्रॉकफोर्ड की यादृच्छिक राय का कोडिफिकेशन है। अपने कोड के बारे में शिकायत करने वाली बस स्टॉप पर एक अजीब दोस्त के रूप में सोचें। – Pointy

+0

मुझे पता है कि इसे बचने की कोई आवश्यकता नहीं है, इसलिए त्रुटि। लेकिन क्यों विशेष रूप से वह चरित्र ... सभी अनावश्यक पात्रों से बचने के लिए, क्यों '<'। – goatslacker

+0

मुझे यकीन है कि उसके आवेदन में उस चेतावनी को शामिल करने के अपने फैसले का एक कारण है। यहां तक ​​कि अगर कारण है "यह बेवकूफ और भ्रमित है।" – goatslacker

उत्तर

3

आप एक दो सरल divs है, तो अंतर स्पष्ट है:

<div> < </div> <!--Missing right angle bracket, bad markup--> 
<div> > </div> <!--No problem, just a greater than text node--> 

JSLint स्वीकार नही करता है कि स्क्रिप्ट एक स्टैंडअलोन फ़ाइल या एक HTML दस्तावेज की एक स्क्रिप्ट टैग के अंदर है। मार्कअप भाषाओं में इस तरह के XUL, MXML, XAML, TVML, LZX, XHTML5 या SVG के रूप में, स्क्रिप्ट टैग सामग्री, ऊपर के उदाहरण में पहले div की तरह व्यवहार किया जाता है, तो बाईं कोण कोष्ठक एक टैग की शुरुआत की तरह दिखाई देगा।

<script> 
if (-1 &lt; 0 &amp;&amp; true !== false) {} 
</script> 

<script> 
<![CDATA[ 
if (-2 < 0 && true !== false) {} 
]]> 
</script> 

संदर्भ

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

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