मैं एक उद्धरण से कैसे बचूँ?


188

मैं 'जावास्क्रिप्ट में एक (एक उद्धरण) कैसे बच सकता हूं ?

यह वह जगह है जहां मैं इसका उपयोग करने की कोशिश कर रहा हूं:

<input type='text' id='abc' value='hel'lo'>

उपरोक्त कोड का परिणाम टेक्स्ट बॉक्स में "हेल" है। मैंने 'with' को बदलने की कोशिश की, लेकिन यह मुझे मिल रहा है।

<input type='text' id='abc' value='hel\'lo'>

उपरोक्त कोड का परिणाम टेक्स्ट बॉक्स में "hel \" है।

मैं एकल उद्धरणों से सफलतापूर्वक कैसे बच सकता हूं?


हे रवि, यह एक html प्रश्न से अधिक है। मैंने प्रश्न को HTML के रूप में फिर से बताया, लेकिन आप इसे अपने प्रश्न में बदलना चाह सकते हैं।
बेंजामिन ने 11:57

जवाबों:


357

आप HTML संस्थाओं का उपयोग कर सकते हैं:

  • &#39; के लिये '
  • &#34; के लिये "
  • ...

अधिक के लिए, आप HTML में चरित्र इकाई संदर्भों पर एक नज़र डाल सकते हैं ।


39
विशेषता मानों के लिए दोहरे उद्धरण चिह्नों का उपयोग क्यों किया जाना चाहिए ?
गुम्बो

5
@ पास्कल मार्टिन: एक्सएमएल विशेषता मूल्यों के लिए एकल उद्धरण की भी अनुमति देता है। (देखें w3.org/TR/xml/#NT-AttValue )
Gumbo

4
@ गुम्बो: वूओ! मुझे नहीं लगता कि मैंने कभी कोई एक्सएमएल दस्तावेज़ देखा है जो सिंगल-कोट्स एरोइड एट्रिब्यूट वैल्यूज़ का उपयोग कर रहा था; इसलिए मुझे नहीं लगा कि यह वास्तव में वैध था ;; मैंने सिर्फ (एक बार फिर) एक सवाल का जवाब देते हुए कुछ सीखा; तो, उन टिप्पणियों के लिए धन्यवाद!
पास्कल मार्टिन

5
मुझे पता है कि यह पुराना है, लेकिन मुझे लगता है कि यह ध्यान देने योग्य है कि इसके लिए एक HTML इकाई है ":&quot;
Daiscog

1
@ पास्कल, w3c सत्यापनकर्ता दिखाता है कि एकल उद्धरण विशेषताओं के लिए मान्य हैं। और stackoverflow.com/questions/2210430/…
क्रिसजैड

62

आप का उपयोग कर सकते हैं &apos;(जो IE में iffy है) या &#39;(जो हर जगह काम करना चाहिए)। एक व्यापक सूची के लिए, W3C HTML5 नामांकित चरित्र संदर्भ या WebPlatform.org पर HTML संस्थाओं की तालिका देखें


वाह, जब से मैंने यह लिखा है, थोड़ी देर हो गई है। इसे पकड़ने के लिए धन्यवाद - मैंने W3C और WebPlatform.org पर दो तालिकाओं के लिंक अपडेट किए हैं।
बेंजामिन मैन्स

ये कार्य "हर जगह" VXML <var> अभिव्यक्ति विशेषताओं को छोड़कर जहां VXML <var> के बाद से आगे बचना आवश्यक है, एक स्ट्रिंग चर मान विशेषता परिभाषाओं के सामान्य दोहरे उद्धरणों के भीतर एकल उद्धरण के रूप में इंगित किया गया है: <var name = "myvar" expr = "'hel \ & apos; lo'" />
स्टीव कोहेन

9

जैसा कि आप HTML के संदर्भ में हैं, आपको उस चरित्र का प्रतिनिधित्व करने के लिए HTML का उपयोग करने की आवश्यकता है। और HTML के लिए आपको एक संख्यात्मक वर्ण संदर्भ &#39; ( &#x27;हेक्साडेसिमल) का उपयोग करने की आवश्यकता है :

<input type='text' id='abc' value='hel&#39;lo'>

लेकिन मुझे समझ में नहीं आया कि आपका क्या मतलब है context of html?
कोडिंग_डॉट

@coding_idiot पार्सिंग प्रक्रिया के दौरान एचटीएमएल पार्सर का सामना करने वाले विभिन्न टोकन पर एक नज़र हो सकती है । प्रत्येक राज्य में पार्सिंग नियमों का एक अलग सेट है जो इनपुट के आधार पर चालू होता है। हर राज्य चरित्र संदर्भों की अनुमति नहीं देता है। अब यदि आप विशेषता मान (एकल उद्धृत) को देखते हैं, तो आप देख सकते हैं कि &एक चरित्र संदर्भ की शुरुआत को दर्शाता है।
गुम्बो

7

इसे एक पाठ इकाई (ASCII 39) के रूप में प्रस्तुत करें:

<input type='text' id='abc' value='hel&#39;lo'>

6

शायद सबसे आसान तरीका:

<input type='text' id='abc' value="hel'lo">


-1

जावास्क्रिप्ट का उपयोग करें फ़ंक्शन फ़ंक्शन एस्केप और अनस्केप

उदाहरण के लिए

var escapedData = escape("hel'lo");   
output = "%27hel%27lo%27" which can be used in the attribute.

again to read the value from the attr

var unescapedData = unescape("%27hel%27lo%27")
output = "'hel'lo'"

यह उपयोगी होगा यदि आपके पास विशेषता में उपयोग किए जाने वाले डेटा को बड़ा करने के लिए विशाल जोंस है


escapeयूनिकोड सुरक्षित नहीं है। विनिर्देश इसके उपयोग के खिलाफ सलाह देता है।
क्वेंटिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.