एक स्ट्रिंग से अग्रणी अल्पविराम निकालें


187

मेरे पास निम्नलिखित स्ट्रिंग हैं:

",'first string','more','even more'"

मैं इसे एक ऐरे में बदलना चाहता हूं, लेकिन जाहिर है कि यह पहले अल्पविराम के कारण मान्य नहीं है। मैं अपनी स्ट्रिंग से पहला कॉमा कैसे निकाल सकता हूं और इसे एक वैध ऐरे बना सकता हूं?

मैं कुछ इस तरह से समाप्त करना चाहता हूं:

myArray  = ['first string','more','even more']

43
बस उपयोग करेंmyString.slice(1);
NBK

2
@ निखिलबेन कुरुविला किसी भी चरित्र को हटा देगा भले ही वह अल्पविराम न हो। यहां पहला चरित्र अल्पविराम हटाने-हटाने stackoverflow.com/a/39047793/696535
पावेल


पावेल, पहले अर्धविराम को हटाने के लिए कोई अभिव्यक्ति नहीं होगी चाहे वह स्ट्रिंग की शुरुआत से कहाँ हो? मुझे इसका उपयोग करना है: फ़ंक्शन निकालेंफर्स्टसिमिकोलन (स्ट्रैट) {str = str.trim (); str = str.replace (/ ^; /, ''); लौट जाना; } यह अधिक सहायक हो सकता है - चरित्र से पहले और बाद में अक्सर सफेद स्थान होता है इसलिए वास्तव में मुझे दो बार ट्रिम का उपयोग करना होगा।
user1585204

जवाबों:


312

आपके द्वारा उपयोग किए जाने वाले पहले वर्ण को निकालने के लिए:

var myOriginalString = ",'first string','more','even more'"; 
var myString = myOriginalString.substring(1);

मुझे यकीन नहीं है कि यह वह परिणाम होगा जिसकी आप तलाश कर रहे हैं क्योंकि आपको अभी भी इसके साथ एक सरणी बनाने के लिए इसे विभाजित करने की आवश्यकता होगी। शायद कुछ इस तरह:

var myString = myOriginalString.substring(1);
var myArray = myString.split(',');

ध्यान रखें, 'वर्ण यहाँ विभाजन में प्रत्येक स्ट्रिंग का एक हिस्सा होगा।


94

इस विशिष्ट मामले में (शुरुआत में हमेशा एक ही चरित्र होता है जिसे आप हटाना चाहते हैं) आप चाहते हैं:

str.substring(1)

हालाँकि, यदि आप यह पता लगाना चाहते हैं कि क्या अल्पविराम वहाँ है और इसे हटा दें यदि यह है, तो कुछ इस तरह है:

if (str[0] == ',') { 
  str = str.substring(1);
}

3
सशर्त के लिए भी +1। हमेशा एक अल्पविराम मान लेना बेहतर नहीं हो सकता है।
जोमोइ १

1
यह एक बेहतर उत्तर है और स्वीकृत उत्तर होना चाहिए।
क्रिस्टोफर स्मित

पहले चरित्र की जांच करने के लिए दो बार सबरिंग को चलाना आवश्यक नहीं है: if (str[0] === ',')बस इसे थोड़ा और बेहतर बनाने के लिए।
क्रोट


9
var s = ",'first string','more','even more'";

var array = s.split(',').slice(1);

यह मानते हुए कि आपके द्वारा शुरू की जाने वाली स्ट्रिंग वास्तव में एक स्ट्रिंग है, जैसे आपने कहा था, और स्ट्रिंग का एक सरणी नहीं।


4

स्ट्रिंग को मान लेना myStr कहलाता है:

// Strip start and end quotation mark and possible initial comma
myStr=myStr.replace(/^,?'/,'').replace(/'$/,'');

// Split stripping quotations
myArray=myStr.split("','");

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


4
var s = ",'first string','more','even more'";  
s.split(/'?,'?/).filter(function(v) { return v; });

का परिणाम:

["first string", "more", "even more'"]

पहले कॉमा के साथ विभाजित करें संभवतः एकल उद्धरण से घिरा हुआ है,
फिर गैर-सत्य (खाली) भागों को फ़िल्टर करें।


3

एक स्ट्रिंग को एक सरणी में बदलने के लिए मैं आमतौर पर उपयोग करता हूं split()

> var s = ",'first string','more','even more'"
> s.split("','")
[",'first string", "more", "even more'"]

यह लगभग वही है जो आप चाहते हैं। अब आपको सिर्फ पहले दो और आखिरी चरित्र को उतारना होगा:

> s.slice(2, s.length-1)
"first string','more','even more"

> s.slice(2, s.length-2).split("','");
["first string", "more", "even more"]

एक स्ट्रिंग मैं आमतौर पर उपयोग करने से सबस्ट्रिंग को निकालने के लिए slice(), लेकिन substr()और substring()भी काम करते हैं।


1

आप rejx के साथ जावास्क्रिप्ट पर सीधे फ़ंक्शन का उपयोग कर सकते हैं या php ltrim (बाएं) और rtrim (दाएं) में मदद फ़ंक्शन को परिभाषित कर सकते हैं:

1) के साथ बदलें:

var myArray = ",'first string','more','even more'".replace(/^\s+/, '').split(/'?,?'/);

2) सहायता कार्य:

if (!String.prototype.ltrim) String.prototype.ltrim = function() {
    return this.replace(/^\s+/, '');
};
if (!String.prototype.rtrim) String.prototype.rtrim = function() {
    return this.replace(/\s+$/, '');
};
var myArray = ",'first string','more','even more'".ltrim().split(/'?,?'/).filter(function(el) {return el.length != 0});;

आप सहायता कार्य में पैरामीटर जोड़ने के लिए और अन्य चीजें कर सकते हैं कि आप चार्ट को क्या बदलना चाहते हैं, आदि।



0

यह अनुगामी अल्पविराम और रिक्त स्थान को हटा देगा

var str = ",'first string','more','even more'";
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.