24 lines
		
	
	
		
			436 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			436 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| function parseString(str) {
 | |
|   try {
 | |
|     if (str[0] === '"') {
 | |
|       return JSON.parse(str);
 | |
|     }
 | |
| 
 | |
|     if (str[0] === "'" && str.substr(str.length - 1) === "'") {
 | |
|       return parseString(
 | |
|         str
 | |
|           .replace(/\\.|"/g, (x) => (x === '"' ? '\\"' : x))
 | |
|           .replace(/^'|'$/g, '"')
 | |
|       );
 | |
|     }
 | |
| 
 | |
|     return JSON.parse('"' + str + '"');
 | |
|   } catch (e) {
 | |
|     return str;
 | |
|   }
 | |
| }
 | |
| 
 | |
| module.exports = parseString;
 |