2010-04-19 13 views
7

मेरे पास एक जावास्क्रिप्ट चर है जो मैं PHP स्रोत का उपयोग करके गूंजता हूं जो पृष्ठ स्रोत में इस तरह दिखाया गया है:जावास्क्रिप्ट: स्ट्रिंग के हिस्से के रूप में बैकस्लैश

var db_1 = 'C:\this\path'; 

जब मैं उस चर के साथ एक टेक्स्ट फ़ील्ड का मान सेट करता हूं तो:

$('#myinput').val(db_1); 

स्लेश गायब हो गए हैं और केवल अन्य वर्ण बाकी हैं!

यह क्यों है और मैं स्लेश को वापस कैसे रख सकता हूं ??

धन्यवाद सभी

+0

var db_1 = 'सी: \\ यह \\ पथ'; – jAndy

उत्तर

11

एक बैकस्लैश जे एस में एक एस्केप वर्ण है। जब स्ट्रिंग शाब्दिक पार्स किया जाता है तो वे खो जाते हैं।

आप उन्हें वापस नहीं रख सकते हैं, क्योंकि आपके पास यह कहने का कोई तरीका नहीं है कि वे कहां थे। आपको यह सुनिश्चित करना होगा कि वे स्ट्रिंग में पहले स्थान पर रहें (उन्हें बचने के अनुक्रम के साथ प्रतिनिधित्व करके)। अधिक जानकारी के लिए

var db_1 = 'C:\\this\\path'; 

:

var db_1 = 'C:\\this\\path'; 
+0

मैंने '\' को '\\' के साथ प्रतिस्थापित करने का प्रयास किया है लेकिन यह काम नहीं करता है। – Abs

+1

यदि "प्रतिस्थापन" से आपका मतलब है "स्रोत कोड में प्रतिस्थापित करें" तो यह काम करना चाहिए (और मेरे लिए करता है)। यदि आपका मतलब है "जावास्क्रिप्ट स्ट्रिंग प्रतिस्थापन विधि का उपयोग करें" तो निश्चित रूप से यह काम नहीं करेगा - मैं आपको अपने उत्तर की दूसरी वाक्य पर वापस भेजता हूं। स्ट्रिंग में कोई बैकस्लैश वर्ण नहीं हैं, बस अनुक्रम से बचें। चूंकि कोई बैकस्लैश वर्ण नहीं हैं, इसलिए यदि आप उन्हें किसी अन्य चीज़ से बदलने की कोशिश करते हैं तो आपको कोई भी परिवर्तन नहीं मिलेगा। – Quentin

+0

आह मैं देखता हूं, मैं PHP के साथ str_replace कर दूंगा। धन्यवाद! – Abs

2

आप उपयोग कर सकते हैं:

echo json_encode('C:\this\path'); 

json_encode कुछ जावा स्क्रिप्ट कोड के लिए एक फिल्टर समारोह के रूप में इस्तेमाल किया जा सकता ।

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