22 lines
		
	
	
		
			586 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			22 lines
		
	
	
		
			586 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /*! | ||
|  |  * pascalcase <https://github.com/jonschlinkert/pascalcase>
 | ||
|  |  * | ||
|  |  * Copyright (c) 2015, Jon Schlinkert. | ||
|  |  * Licensed under the MIT License. | ||
|  |  */ | ||
|  | 
 | ||
|  | function pascalcase(str) { | ||
|  |   if (typeof str !== 'string') { | ||
|  |     throw new TypeError('expected a string.'); | ||
|  |   } | ||
|  |   str = str.replace(/([A-Z])/g, ' $1'); | ||
|  |   if (str.length === 1) { return str.toUpperCase(); } | ||
|  |   str = str.replace(/^[\W_]+|[\W_]+$/g, '').toLowerCase(); | ||
|  |   str = str.charAt(0).toUpperCase() + str.slice(1); | ||
|  |   return str.replace(/[\W_]+(\w|$)/g, function (_, ch) { | ||
|  |     return ch.toUpperCase(); | ||
|  |   }); | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = pascalcase; |