2013-05-20 8 views
51

के साथ एक फॉरवर्ड स्लैश मिलान करना मुझे जावास्क्रिप्ट के साथ बहुत अधिक अनुभव नहीं है, लेकिन मैं एक टैग सिस्टम बनाने की कोशिश कर रहा हूं, @ या # का उपयोग करने के बजाय, / का उपयोग करेगा।एक रेगेक्स

var start = /#/ig; // @ Match 

var word = /#(\w+)/ig; //@abc Match 

मैं कैसे # के बजाय एक / इस्तेमाल कर सकते हैं। मैंने var slash = '/' करने और + slash + जोड़ने का प्रयास किया है, लेकिन यह असफल रहा।

+1

कृपया शीर्षक बदलें। और आप वास्तव में क्या करने की कोशिश कर रहे हैं? मुझे अभी भी आपका प्रश्न पढ़ने के बाद कोई जानकारी नहीं है। – OptimusCrime

+0

मुझे यकीन नहीं है कि मैं समझता हूं। –

+2

http://meta.stackexchange.com/a/177767/178816 –

उत्तर

71

के साथ से बचने के लिए की जरूरत है आप / उपयोग करना चाहते हैं।

/\//ig; // Matches/

या सिर्फ indexOf

if(str.indexOf("/") > -1) 
+0

धन्यवाद बेन, मैंने कोशिश की कि मैंने भी अंत में एक और \ "अंत में जोड़ा। – iBrazilian2

14

आपको के साथ / से बचने की आवश्यकता है।

/\//ig // matches/
4

आप आप इसे इस तरह बच सकते हैं एक \

var word = /\/(\w+)/ig; 
6

का उपयोग नियमित अभिव्यक्ति में, "/" विशेष वर्ण जो बच गए होने की जरूरत है (उर्फ एक \ इससे पहले कि यह इस प्रकार कोई विशेष समारोह में यह हो सकता है negating रखने द्वारा चिह्नित किए गए है सेवा कर)।

var word = /\/(\w+)/ig; // /abc Match 

रेगुलर एक्सप्रेशन से विशेष यहाँ पात्रों के बारे में पढ़ें:

यहाँ आप क्या जरूरत है http://www.regular-expressions.info/characters.html

+6

"/" नियमित अभिव्यक्तियों में एक विशेष चरित्र नहीं है। यह जावास्क्रिप्ट में एक विशेष चरित्र है जो कि रेगेक्स शुरू होता है और समाप्त होता है। – sokkyoku

0

मैं पूर्वगामी, जब अवशोषण पाठ \ और / द्वारा सीमांकित से संबंधित दो मुद्दों का सामना करना पड़ा है, और एक पाया समाधान जो new RegExp का उपयोग करने के अलावा दोनों फिट बैठता है, जिसके लिए शुरुआत में \\\\ की आवश्यकता होती है। ये निष्कर्ष क्रोम और आईई 11 में हैं।

नियमित अभिव्यक्ति

/\\(.*)\//g 

काम नहीं करता। मुझे लगता है कि // को बचने वाले चरित्र के बावजूद एक टिप्पणी की शुरुआत के रूप में व्याख्या किया गया है। नियमित अभिव्यक्ति (सामान्य रूप से मेरे मामले में समान रूप से मान्य नहीं है)

/\b/\\(.*)\/\b/g 

या तो काम नहीं करता है। मुझे लगता है कि दूसरा / बचने वाले चरित्र के बावजूद नियमित अभिव्यक्ति को समाप्त करता है।

क्या मेरे लिए काम करता है \x2F रूप / प्रतिनिधित्व करने के लिए है, जो / का हेक्साडेसिमल प्रतिनिधित्व है। मुझे लगता है कि new RegExp का उपयोग करने से अधिक कुशल और समझदार है, लेकिन निश्चित रूप से हेक्स कोड की पहचान करने के लिए इसे एक टिप्पणी की आवश्यकता है।

0

फ़ॉरवर्ड स्लैश विशेष वर्ण हां, तो आप फ़ॉरवर्ड स्लैश से पहले एक बैकस्लैश जोड़ने के लिए यह काम करना है है

$patterm = "/[0-9]{2}+(?:-|.|\/)+[a-zA-Z]{3}+(?:-|.|\/)+[0-9]{4}/"; 

जहां// के लिए खोज का प्रतिनिधित्व करता है इस तरह से आप

0

तुम भी काम कर सकते हैं में एक चरित्र समूह में इसे संलग्न करके आगे जेएस हैंडलिंग के आसपास, जैसे:

const start = /[/]/g; 
"/dev/null".match(start)  // => ["/", "/"] 

const word = /[/](\w+)/ig; 
"/dev/null".match(word)  // => ["/dev", "/null"]