2009-05-20 15 views
8

मैं इस तरह प्रदर्शित करता है कि की एक स्ट्रिंग है ....सहायता

1235, 3, 1343 5, 1234, 1

मैं हर प्रतिस्थापित करने की आवश्यकता अर्धविराम

यानी

1235, 3 के साथ दूसरे अल्पविराम; 1343, 5; 1234, 1

स्ट्रिंग लंबाई हमेशा अलग हो जाएगा, लेकिन इसके बाद के संस्करण अर्थात अंक अल्पविराम अंतरिक्ष अंक अल्पविराम स्थान के रूप में एक ही पैटर्न का पालन करेंगे, आदि

कैसे मैं जावास्क्रिप्ट के साथ ऐसा कर सकते हैं? क्या यह संभव है?

धन्यवाद, माइक

+2

आप सभी बहुत बहुत धन्यवाद, मैं इन उदाहरणों से काफ़ी सीखा है। –

उत्तर

8
'1235, 3, 1343, 5, 1234, 1'.replace(/([0-9]+),\s([0-9]+),\s/g, '$1, $2; ') 
+1

आप जल्दी से सही होने की पुष्टि अपने ब्राउज़र के यूआरएल में चिपकाया जा सकता कोशिश करना चाहते हैं: जावास्क्रिप्ट: चेतावनी ('1235, 3, 1343 5, 1234, 1'.replace (/ ([0-9] +), \ s ([0-9] +), \ रों/जी, '$ 1, $ 2;')) – Kam

3

कैसे के बारे में:

var regex = /(\d+),\s(\d+),\s/g; 
var str = '1235, 3, 1343, 5, 1234, 1'; 
alert(str.replace(regex, '$1, $2; ')); // 1235, 3; 1343, 5; 1234, 1 
7
var s = '1235, 3, 1343, 5, 1234, 1'; 
var result = s.replace(/(,[^,]*),/g,"$1;"); 
+0

यह एक वैध रणनीति दमित्री - यकीन नहीं तुम क्या मतलब है –

+0

+1 इस जादुई प्रतिभा संपादन के बाद कुछ समझा :) – Andomar

0

var foo = "1235,3,1343,5,1234,1".replace(/(.\*?),(.\*?),/g, "$1,$2;"); 
 

 
console.log(foo)

+0

निकाला गया downvote इस्तेमाल कर सकते हैं हालांकि , (। *?) नोंग्री मैच सही है? तो इसका मूल रूप से अर्थ है [^]] – Andomar

2
var myregexp = /(\d+,\s\d+),/g; 
result = subject.replace(myregexp, "$1;"); 
3
var s='1235, 3, 1343, 5, 1234, 1'; 

s=s.replace(/([^,]+,[^,]+),/g,'$1;') 

किसी भी चीज से मेल खाता है जो कॉमा नहीं है, उसके बाद कॉमा, कोई भी ऐसा नहीं है जो अल्पविराम और अल्पविराम नहीं है।

ही ('$ 1') के साथ कोष्ठक के अंदर प्रत्येक भाग को (जो पिछले अल्पविराम शामिल नहीं है) की जगह है, और उस अल्पविराम के स्थान पर एक अर्धविराम जोड़ें।

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