मैं जावास्क्रिप्ट रीगेक्स का उपयोग करके एक स्ट्रिंग को ऊंट मामले में कैसे बदल सकता हूं?
EquipmentClass name
या
Equipment className
या equipment class name
याEquipment Class Name
सब हो जाना चाहिए: equipmentClassName
।
मैं जावास्क्रिप्ट रीगेक्स का उपयोग करके एक स्ट्रिंग को ऊंट मामले में कैसे बदल सकता हूं?
EquipmentClass name
या
Equipment className
या equipment class name
याEquipment Class Name
सब हो जाना चाहिए: equipmentClassName
।
जवाबों:
अपने कोड को देखते हुए, आप इसे केवल दो replace
कॉल के साथ प्राप्त कर सकते हैं:
function camelize(str) {
return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function(word, index) {
return index === 0 ? word.toLowerCase() : word.toUpperCase();
}).replace(/\s+/g, '');
}
camelize("EquipmentClass name");
camelize("Equipment className");
camelize("equipment class name");
camelize("Equipment Class Name");
// all output "equipmentClassName"
संपादित करें: या एक replace
कॉल के साथ, सफेद रिक्त स्थान को भी कैप्चर करना RegExp
।
function camelize(str) {
return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) {
if (+match === 0) return ""; // or if (/\s+/.test(match)) for white spaces
return index === 0 ? match.toLowerCase() : match.toUpperCase();
});
}
camelize("Let's Do It!") === "let'SDoIt!"
उदास चेहरा । मैं खुद कोशिश करूंगा लेकिन डर है कि मैं सिर्फ एक और जगह जोड़ूंगा।
return this.replace(/[^a-z ]/ig, '').replace(/(?:^\w|[A-Z]|\b\w|\s+)/g,
...
const toCamelCase = (str) => str.replace(/(?:^\w|[A-Z]|\b\w)/g, (ltr, idx) => idx === 0 ? ltr.toLowerCase() : ltr.toUpperCase()).replace(/\s+/g, '');
.toLowerCase()
जैसे कि विधि। ऊपर @ tabrindle के समाधान का उपयोग करना:const toCamelCase = (str) => str.toLowerCase().replace(/(?:^\w|[A-Z]|\b\w)/g, (ltr, idx) => idx === 0 ? ltr.toLowerCase() : ltr.toUpperCase()).replace(/\s+/g, '');
यदि कोई भी लताड़ का उपयोग कर रहा है , तो एक _.camelCase()
फ़ंक्शन है।
_.camelCase('Foo Bar');
// → 'fooBar'
_.camelCase('--foo-bar--');
// → 'fooBar'
_.camelCase('__FOO_BAR__');
// → 'fooBar'
मैंने यह करना समाप्त कर दिया:
String.prototype.toCamelCase = function(str) {
return str
.replace(/\s(.)/g, function($1) { return $1.toUpperCase(); })
.replace(/\s/g, '')
.replace(/^(.)/, function($1) { return $1.toLowerCase(); });
}
मैं एक साथ कई बयानों को बदलने से बचने की कोशिश कर रहा था। मेरे फंक्शन में कुछ ऐसा होगा जहाँ मैं $ 1, $ 2, $ 3 होगा। लेकिन उस प्रकार के समूह को समझना मुश्किल है, और क्रॉस ब्राउज़र समस्याओं के बारे में आपका उल्लेख कुछ ऐसा है जिसके बारे में मैंने कभी नहीं सोचा था।
this.valueOf()
पास होने के बजाय उपयोग करने की आवश्यकता है str
। वैकल्पिक रूप से (मेरे मामले में) के this.toLowerCase()
रूप में मेरे इनपुट तार सभी CAPS में थे, जिसमें गैर-कूबड़ के हिस्से ठीक से नीचे नहीं थे। केवल this
स्ट्रिंग ऑब्जेक्ट का उपयोग करके ही, जो वास्तव में चार का एक सरणी है, इसलिए टाइपऑयर को ऊपर उल्लेख किया गया है।
आप इस समाधान का उपयोग कर सकते हैं:
function toCamelCase(str){
return str.split(' ').map(function(word,index){
// If it is the first word make sure to lowercase all the chars.
if(index == 0){
return word.toLowerCase();
}
// If it is not the first word only upper case the first char and lowercase the rest.
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
}).join('');
}
toCamelCase
कार्य बस यही करता है।
सी अमेल सी ase पाने के लिए
ES5
var camalize = function camalize(str) {
return str.toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, function(match, chr)
{
return chr.toUpperCase();
});
}
ES6
var camalize = function camalize(str) {
return str.toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, (m, chr) => chr.toUpperCase());
}
करने के लिए मिलता सी आमेल एस entence सी ase या पी ascal सी ase
var camelSentence = function camelSentence(str) {
return (" " + str).toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, function(match, chr)
{
return chr.toUpperCase();
});
}
नोट:
लहजे वाली भाषा के लिए। À-ÖØ-öø-ÿ
निम्नलिखित के रूप में रेगेक्स के साथ शामिल करें
.replace(/[^a-zA-ZÀ-ÖØ-öø-ÿ0-9]+(.)/g
https://stackoverflow.com/posts/52551910/revisions
ES6 को जोड़ा , मैंने इसका परीक्षण नहीं किया है। मैं जांच करूंगा और अपडेट करूंगा।
स्कॉट के विशिष्ट मामले में मैं कुछ इस तरह से जाना होगा:
String.prototype.toCamelCase = function() {
return this.replace(/^([A-Z])|\s(\w)/g, function(match, p1, p2, offset) {
if (p2) return p2.toUpperCase();
return p1.toLowerCase();
});
};
'EquipmentClass name'.toCamelCase() // -> equipmentClassName
'Equipment className'.toCamelCase() // -> equipmentClassName
'equipment class name'.toCamelCase() // -> equipmentClassName
'Equipment Class Name'.toCamelCase() // -> equipmentClassName
रेगेक्स पहले वर्ण से मेल खाएगा यदि यह एक कैपिटल लेटर से शुरू होता है, और स्पेस में निम्नलिखित किसी वर्णमाला वर्ण से निर्दिष्ट स्ट्रिंग्स में 2 या 3 बार।
रेगेक्स को ऊपर उठाकर /^([A-Z])|[\s-_](\w)/g
यह हाइफ़न और अंडरस्कोर टाइप नामों को भी व्यवस्थित करेगा।
'hyphen-name-format'.toCamelCase() // -> hyphenNameFormat
'underscore_name_format'.toCamelCase() // -> underscoreNameFormat
+
) को वर्ण समूह में जोड़ना होगा , अर्थात:/^([A-Z])|[\s-_]+(\w)/g
function toCamelCase(str) {
// Lower cases the string
return str.toLowerCase()
// Replaces any - or _ characters with a space
.replace( /[-_]+/g, ' ')
// Removes any non alphanumeric characters
.replace( /[^\w\s]/g, '')
// Uppercases the first character in each group immediately following a space
// (delimited by spaces)
.replace( / (.)/g, function($1) { return $1.toUpperCase(); })
// Removes spaces
.replace( / /g, '' );
}
मैं camelCase
एक स्ट्रिंग को जावास्क्रिप्ट फ़ंक्शन खोजने की कोशिश कर रहा था , और यह सुनिश्चित करना चाहता था कि विशेष वर्ण हटा दिए जाएंगे (और मुझे यह समझने में परेशानी थी कि ऊपर दिए गए कुछ उत्तर क्या कर रहे थे)। यह cc यंग के उत्तर पर आधारित है, और टिप्पणी और $ peci & l वर्णों को हटाने के साथ।
यदि regexp की आवश्यकता नहीं है, तो आप निम्नलिखित कोड को देखना चाहेंगे जो मैंने बहुत समय पहले ट्विंकल के लिए बनाया था :
String.prototype.toUpperCaseFirstChar = function() {
return this.substr( 0, 1 ).toUpperCase() + this.substr( 1 );
}
String.prototype.toLowerCaseFirstChar = function() {
return this.substr( 0, 1 ).toLowerCase() + this.substr( 1 );
}
String.prototype.toUpperCaseEachWord = function( delim ) {
delim = delim ? delim : ' ';
return this.split( delim ).map( function(v) { return v.toUpperCaseFirstChar() } ).join( delim );
}
String.prototype.toLowerCaseEachWord = function( delim ) {
delim = delim ? delim : ' ';
return this.split( delim ).map( function(v) { return v.toLowerCaseFirstChar() } ).join( delim );
}
मैंने कोई प्रदर्शन परीक्षण नहीं किया है, और regexp संस्करण तेज हो सकते हैं या नहीं भी हो सकते हैं।
मेरा ES6 दृष्टिकोण:
const camelCase = str => {
let string = str.toLowerCase().replace(/[^A-Za-z0-9]/g, ' ').split(' ')
.reduce((result, word) => result + capitalize(word.toLowerCase()))
return string.charAt(0).toLowerCase() + string.slice(1)
}
const capitalize = str => str.charAt(0).toUpperCase() + str.toLowerCase().slice(1)
let baz = 'foo bar'
let camel = camelCase(baz)
console.log(camel) // "fooBar"
camelCase('foo bar') // "fooBar"
camelCase('FOO BAR') // "fooBar"
camelCase('x nN foo bar') // "xNnFooBar"
camelCase('!--foo-¿?-bar--121-**%') // "fooBar121"
return "hello world".toLowerCase().replace(/(?:(^.)|(\s+.))/g, function(match) {
return match.charAt(match.length-1).toUpperCase();
}); // HelloWorld
लॉश यकीन और अच्छी तरह से कर सकते हैं:
var _ = require('lodash');
var result = _.camelCase('toto-ce héros')
// result now contains "totoCeHeros"
हालाँकि lodash
यह एक "बड़ी" लाइब्रेरी (~ 4kB) हो सकती है, इसमें बहुत सारे फ़ंक्शंस हैं जो आप सामान्य रूप से अपने लिए स्निपेट का उपयोग करेंगे, या स्वयं का निर्माण करेंगे।
यहाँ एक लाइनर काम कर रहा है:
const camelCaseIt = string => string.toLowerCase().trim().split(/[.\-_\s]/g).reduce((string, word) => string + word[0].toUpperCase() + word.slice(1));
यह RegExp में दिए गए वर्णों की सूची के आधार पर निचली-आवरण वाली स्ट्रिंग को विभाजित करता है [.\-_\s]
([] के अंदर और जोड़ें) और एक शब्द सरणी देता है। फिर, यह शीर्ष अक्षरों के साथ शब्दों के एक संक्षिप्त स्ट्रिंग के लिए तार की सरणी को कम करता है। क्योंकि कम का कोई प्रारंभिक मूल्य नहीं है, इसलिए यह दूसरे शब्द के साथ शुरू होने वाले पहले अक्षरों को ऊपर ले जाना शुरू कर देगा।
यदि आप पास्कलकेस चाहते हैं, ,'')
तो कम करने के लिए प्रारंभिक खाली स्ट्रिंग जोड़ें ।
@ स्कॉट के पढ़ने योग्य दृष्टिकोण के बाद, ठीक ट्यूनिंग का एक छोटा सा
// किसी भी स्ट्रिंग को कैमलकेस में कनवर्ट करें var toCamelCase = function (str) { वापसी str.toLowerCase () .replace (/ [[""] / जी, '') .replace (/ \ W + / g, '') .replace (/ (।) / g, फ़ंक्शन ($ 1) {$ $ 1.toUpperCase ()}}) .replace (/ / g, ''); }
नीचे दिए गए सभी 14 क्रमांकन "उपकरणक्लास्नाम" का एक ही परिणाम है।
String.prototype.toCamelCase = function() {
return this.replace(/[^a-z ]/ig, '') // Replace everything but letters and spaces.
.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, // Find non-words, uppercase letters, leading-word letters, and multiple spaces.
function(match, index) {
return +match === 0 ? "" : match[index === 0 ? 'toLowerCase' : 'toUpperCase']();
});
}
String.toCamelCase = function(str) {
return str.toCamelCase();
}
var testCases = [
"equipment class name",
"equipment class Name",
"equipment Class name",
"equipment Class Name",
"Equipment class name",
"Equipment class Name",
"Equipment Class name",
"Equipment Class Name",
"equipment className",
"equipment ClassName",
"Equipment ClassName",
"equipmentClass name",
"equipmentClass Name",
"EquipmentClass Name"
];
for (var i = 0; i < testCases.length; i++) {
console.log(testCases[i].toCamelCase());
};
आप इस समाधान का उपयोग कर सकते हैं:
String.prototype.toCamelCase = function(){
return this.replace(/\s(\w)/ig, function(all, letter){return letter.toUpperCase();})
.replace(/(^\w)/, function($1){return $1.toLowerCase()});
};
console.log('Equipment className'.toCamelCase());
क्योंकि इस सवाल के लिए एक और उत्तर की आवश्यकता थी ...
मैंने पिछले समाधानों में से कई की कोशिश की, और उन सभी में एक दोष या दूसरा था। कुछ ने विराम चिह्न नहीं हटाया; कुछ ने संख्या के साथ मामलों को नहीं संभाला; कुछ ने एक पंक्ति में कई विराम चिह्नों को नहीं संभाला।
उनमें से कोई भी एक स्ट्रिंग की तरह संभाला a1 2b
। इस मामले के लिए कोई स्पष्ट रूप से परिभाषित सम्मेलन नहीं है, लेकिन कुछ अन्य स्टैकओवरफ़्लो प्रश्नों ने एक अंडरस्कोर के साथ संख्याओं को अलग करने का सुझाव दिया।
मुझे संदेह है कि यह सबसे अच्छा उत्तर है (तीन रेगेक्स स्ट्रिंग के माध्यम से गुजरता है, एक या दो के बजाय), लेकिन यह उन सभी परीक्षणों से गुजरता है जिनके बारे में मैं सोच सकता हूं। हालांकि, ईमानदार होना, मैं वास्तव में एक ऐसे मामले की कल्पना नहीं कर सकता, जहां आप इतने ऊँट-केस रूपांतरण कर रहे हों, जो प्रदर्शन मायने रखता हो।
(मैंने इसे एक npm पैकेज के रूप में जोड़ा । इसमें कैमर केस के बजाय पास्कल केस को वापस करने के लिए एक वैकल्पिक बूलियन पैरामीटर भी शामिल है।)
const underscoreRegex = /(?:[^\w\s]|_)+/g,
sandwichNumberRegex = /(\d)\s+(?=\d)/g,
camelCaseRegex = /(?:^\s*\w|\b\w|\W+)/g;
String.prototype.toCamelCase = function() {
if (/^\s*_[\s_]*$/g.test(this)) {
return '_';
}
return this.replace(underscoreRegex, ' ')
.replace(sandwichNumberRegex, '$1_')
.replace(camelCaseRegex, function(match, index) {
if (/^\W+$/.test(match)) {
return '';
}
return index == 0 ? match.trimLeft().toLowerCase() : match.toUpperCase();
});
}
टेस्ट केस (जेस्ट)
test('Basic strings', () => {
expect(''.toCamelCase()).toBe('');
expect('A B C'.toCamelCase()).toBe('aBC');
expect('aB c'.toCamelCase()).toBe('aBC');
expect('abc def'.toCamelCase()).toBe('abcDef');
expect('abc__ _ _def'.toCamelCase()).toBe('abcDef');
expect('abc__ _ d_ e _ _fg'.toCamelCase()).toBe('abcDEFg');
});
test('Basic strings with punctuation', () => {
expect(`a'b--d -- f.h`.toCamelCase()).toBe('aBDFH');
expect(`...a...def`.toCamelCase()).toBe('aDef');
});
test('Strings with numbers', () => {
expect('12 3 4 5'.toCamelCase()).toBe('12_3_4_5');
expect('12 3 abc'.toCamelCase()).toBe('12_3Abc');
expect('ab2c'.toCamelCase()).toBe('ab2c');
expect('1abc'.toCamelCase()).toBe('1abc');
expect('1Abc'.toCamelCase()).toBe('1Abc');
expect('abc 2def'.toCamelCase()).toBe('abc2def');
expect('abc-2def'.toCamelCase()).toBe('abc2def');
expect('abc_2def'.toCamelCase()).toBe('abc2def');
expect('abc1_2def'.toCamelCase()).toBe('abc1_2def');
expect('abc1 2def'.toCamelCase()).toBe('abc1_2def');
expect('abc1 2 3def'.toCamelCase()).toBe('abc1_2_3def');
});
test('Oddball cases', () => {
expect('_'.toCamelCase()).toBe('_');
expect('__'.toCamelCase()).toBe('_');
expect('_ _'.toCamelCase()).toBe('_');
expect('\t_ _\n'.toCamelCase()).toBe('_');
expect('_a_'.toCamelCase()).toBe('a');
expect('\''.toCamelCase()).toBe('');
expect(`\tab\tcd`.toCamelCase()).toBe('abCd');
expect(`
ab\tcd\r
-_
|'ef`.toCamelCase()).toBe(`abCdEf`);
});
मेरा समाधान है:
const toCamelWord = (word, idx) =>
idx === 0 ?
word.toLowerCase() :
word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
const toCamelCase = text =>
text
.split(/[_-\s]+/)
.map(toCamelWord)
.join("");
console.log(toCamelCase('User ID'))
यह विधि यहां पर अधिकांश उत्तरों को बेहतर बनाने के लिए लगती है, हालांकि यह थोड़ा हैकी है, कोई रिप्लेसमेंट, कोई रेगेक्स नहीं, बस एक नया स्ट्रिंग बना रहा है जो कैमलकेस है।
String.prototype.camelCase = function(){
var newString = '';
var lastEditedIndex;
for (var i = 0; i < this.length; i++){
if(this[i] == ' ' || this[i] == '-' || this[i] == '_'){
newString += this[i+1].toUpperCase();
lastEditedIndex = i+1;
}
else if(lastEditedIndex !== i) newString += this[i].toLowerCase();
}
return newString;
}
यह सीएमएस द्वारा उत्तर पर अंडरस्कोर सहित किसी भी गैर-वर्णात्मक वर्ण को हटाकर बनाता है , जो \w
नहीं हटाता है।
function toLowerCamelCase(str) {
return str.replace(/[^A-Za-z0-9]/g, ' ').replace(/^\w|[A-Z]|\b\w|\s+/g, function (match, index) {
if (+match === 0 || match === '-' || match === '.' ) {
return ""; // or if (/\s+/.test(match)) for white spaces
}
return index === 0 ? match.toLowerCase() : match.toUpperCase();
});
}
toLowerCamelCase("EquipmentClass name");
toLowerCamelCase("Equipment className");
toLowerCamelCase("equipment class name");
toLowerCamelCase("Equipment Class Name");
toLowerCamelCase("Equipment-Class-Name");
toLowerCamelCase("Equipment_Class_Name");
toLowerCamelCase("Equipment.Class.Name");
toLowerCamelCase("Equipment/Class/Name");
// All output e
ऊपरी ऊंट का मामला ("टेस्टस्ट्रिंग") से कम ऊँट का मामला ("टेस्टस्ट्रिंग") रेगेक्स का उपयोग किए बिना (चलो इसका सामना करें, रेगेक्स बुराई है):
'TestString'.split('').reduce((t, v, k) => t + (k === 0 ? v.toLowerCase() : v), '');
मैंने थोड़ा और आक्रामक समाधान तैयार किया:
function toCamelCase(str) {
const [first, ...acc] = str.replace(/[^\w\d]/g, ' ').split(/\s+/);
return first.toLowerCase() + acc.map(x => x.charAt(0).toUpperCase()
+ x.slice(1).toLowerCase()).join('');
}
यह एक, ऊपर, सभी गैर-अल्फ़ान्यूमेरिक वर्णों और शब्दों के निचले हिस्सों को हटा देगा जो अन्यथा अपरकेस बने रहेंगे, जैसे
Size (comparative)
=> sizeComparative
GDP (official exchange rate)
=> gdpOfficialExchangeRate
hello
=> hello
function convertStringToCamelCase(str){
return str.split(' ').map(function(item, index){
return index !== 0
? item.charAt(0).toUpperCase() + item.substr(1)
: item.charAt(0).toLowerCase() + item.substr(1);
}).join('');
}
यहाँ मेरा सुझाव है:
function toCamelCase(string) {
return `${string}`
.replace(new RegExp(/[-_]+/, 'g'), ' ')
.replace(new RegExp(/[^\w\s]/, 'g'), '')
.replace(
new RegExp(/\s+(.)(\w+)/, 'g'),
($1, $2, $3) => `${$2.toUpperCase() + $3.toLowerCase()}`
)
.replace(new RegExp(/\s/, 'g'), '')
.replace(new RegExp(/\w/), s => s.toLowerCase());
}
या
String.prototype.toCamelCase = function() {
return this
.replace(new RegExp(/[-_]+/, 'g'), ' ')
.replace(new RegExp(/[^\w\s]/, 'g'), '')
.replace(
new RegExp(/\s+(.)(\w+)/, 'g'),
($1, $2, $3) => `${$2.toUpperCase() + $3.toLowerCase()}`
)
.replace(new RegExp(/\s/, 'g'), '')
.replace(new RegExp(/\w/), s => s.toLowerCase());
};
परीक्षण के मामलों:
describe('String to camel case', function() {
it('should return a camel cased string', function() {
chai.assert.equal(toCamelCase('foo bar'), 'fooBar');
chai.assert.equal(toCamelCase('Foo Bar'), 'fooBar');
chai.assert.equal(toCamelCase('fooBar'), 'fooBar');
chai.assert.equal(toCamelCase('FooBar'), 'fooBar');
chai.assert.equal(toCamelCase('--foo-bar--'), 'fooBar');
chai.assert.equal(toCamelCase('__FOO_BAR__'), 'fooBar');
chai.assert.equal(toCamelCase('!--foo-¿?-bar--121-**%'), 'fooBar121');
});
});
मुझे पता है कि यह एक पुराना उत्तर है, लेकिन यह व्हाट्सएप और _ (लॉश) दोनों को संभालता है
function toCamelCase(s){
return s
.replace(/_/g, " ")
.replace(/\s(.)/g, function($1) { return $1.toUpperCase(); })
.replace(/\s/g, '')
.replace(/^(.)/, function($1) { return $1.toLowerCase(); });
}
console.log(toCamelCase("Hello world");
console.log(toCamelCase("Hello_world");
// Both print "helloWorld"
"
में .replace(/_/g", " ")
है कि कारणों संकलन त्रुटियों?
संपादित करें : अब बदलावों के बिना IE8 में काम करना।
संपादित करें : मैं इस बात को लेकर अल्पमत में था कि वास्तव में कैमलकेस क्या है (लीडिंग कैरेक्टर लोअरकेस बनाम अपरकेस।) बड़े पैमाने पर समुदाय का मानना है कि एक प्रमुख लोअरकेस ऊंट का मामला है और एक प्रमुख राजधानी पास्कल मामला है। मैंने दो फ़ंक्शन बनाए हैं जो केवल रेगेक्स पैटर्न का उपयोग करते हैं। :) तो हम एक एकीकृत शब्दावली का उपयोग करते हैं मैंने बहुमत से मिलान करने के लिए अपना रुख बदल दिया है।
मेरा मानना है कि आपको किसी भी मामले में एकल रेगेक्स की आवश्यकता है:
var camel = " THIS is camel case "
camel = $.trim(camel)
.replace(/[^A-Za-z]/g,' ') /* clean up non-letter characters */
.replace(/(.)/g, function(a, l) { return l.toLowerCase(); })
.replace(/(\s.)/g, function(a, l) { return l.toUpperCase(); })
.replace(/[^A-Za-z\u00C0-\u00ff]/g,'');
// Returns "thisIsCamelCase"
या
var pascal = " this IS pascal case "
pascal = $.trim(pascal)
.replace(/[^A-Za-z]/g,' ') /* clean up non-letter characters */
.replace(/(.)/g, function(a, l) { return l.toLowerCase(); })
.replace(/(^.|\s.)/g, function(a, l) { return l.toUpperCase(); })
.replace(/[^A-Za-z\u00C0-\u00ff]/g,'');
// Returns "ThisIsPascalCase"
फ़ंक्शंस में: आप देखेंगे कि इन फ़ंक्शंस में स्पेस किसी भी नॉन az को स्पेस बनाम एक खाली स्ट्रिंग के साथ स्वैप कर रहा है। यह पूंजीकरण के लिए शब्द सीमा बनाना है। "हैलो-मेरी # दुनिया" -> "HelloMyWorld"
// remove \u00C0-\u00ff] if you do not want the extended letters like é
function toCamelCase(str) {
var retVal = '';
retVal = $.trim(str)
.replace(/[^A-Za-z]/g, ' ') /* clean up non-letter characters */
.replace(/(.)/g, function (a, l) { return l.toLowerCase(); })
.replace(/(\s.)/g, function (a, l) { return l.toUpperCase(); })
.replace(/[^A-Za-z\u00C0-\u00ff]/g, '');
return retVal
}
function toPascalCase(str) {
var retVal = '';
retVal = $.trim(str)
.replace(/[^A-Za-z]/g, ' ') /* clean up non-letter characters */
.replace(/(.)/g, function (a, l) { return l.toLowerCase(); })
.replace(/(^.|\s.)/g, function (a, l) { return l.toUpperCase(); })
.replace(/[^A-Za-z\u00C0-\u00ff]/g, '');
return retVal
}
टिप्पणियाँ:
का आनंद लें
मुझे लगता है कि यह काम करना चाहिए ..
function cammelCase(str){
let arr = str.split(' ');
let words = arr.filter(v=>v!='');
words.forEach((w, i)=>{
words[i] = w.replace(/\w\S*/g, function(txt){
return txt.charAt(0).toUpperCase() + txt.substr(1);
});
});
return words.join('');
}
String.prototype.toCamelCase () का उपयोग न करें क्योंकि String.prototypes केवल-पढ़ने के लिए हैं, अधिकांश js कंपाइलर आपको यह चेतावनी देंगे।
मेरी तरह, जो लोग जानते हैं कि स्ट्रिंग में हमेशा एक ही स्थान होगा, एक सरल दृष्टिकोण का उपयोग कर सकते हैं:
let name = 'test string';
let pieces = name.split(' ');
pieces = pieces.map((word, index) => word.charAt(0)[index===0 ? 'toLowerCase' :'toUpperCase']() + word.toLowerCase().slice(1));
return pieces.join('');
आपका दिन शुभ हो। :)