mirror of
https://github.com/liriliri/eruda.git
synced 2026-03-20 09:38:37 +08:00
Dev: Improve line break display
This commit is contained in:
@@ -1083,6 +1083,21 @@ Escapes a string for insertion into HTML, replacing &, <, >, ", `, and ' charact
|
||||
escape('You & Me'); -> // -> 'You & Me'
|
||||
```
|
||||
|
||||
## escapeJsStr
|
||||
|
||||
Escape string to be a valid JavaScript string literal between quotes.
|
||||
|
||||
http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
|
||||
|
||||
|Name |Type |Desc |
|
||||
|------|------|----------------|
|
||||
|str |string|String to escape|
|
||||
|return|string|Escaped string |
|
||||
|
||||
```javascript
|
||||
escapeJsStr('\"\n'); // -> '\\"\\\\n'
|
||||
```
|
||||
|
||||
## escapeJsonStr
|
||||
|
||||
Escape json string.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/* Escape json string.
|
||||
*/
|
||||
|
||||
_('escapeJsStr');
|
||||
|
||||
function exports(str)
|
||||
{
|
||||
return str.replace(/\\/g, '\\\\')
|
||||
.replace(/"/g, '\\"')
|
||||
.replace(/\f|\n|\r|\t/g, '');
|
||||
return escapeJsStr(str).replace(/\\'/g, '\'');
|
||||
}
|
||||
|
||||
@@ -258,4 +258,4 @@ function objToArr(val)
|
||||
|
||||
const LIGHTER_KEY = ['__proto__'];
|
||||
|
||||
let encode = str => escape(toStr(str));
|
||||
let encode = str => escape(toStr(str)).replace(/\n/g, '↵').replace(/\f|\r|\t/g, '');
|
||||
|
||||
@@ -39,7 +39,7 @@ export default function getAbstract(obj, {
|
||||
strWrapper = '<span style="color: #183691;">',
|
||||
boolWrapper = '<span style="color: #0086b3;">',
|
||||
specialWrapper = '<span style="color: #707d8b;">',
|
||||
strEscape = str => escape(str),
|
||||
strEscape = str => escape(str).replace(/\\n/g, '↵').replace(/\\f|\\r|\\t/g, '').replace(/\\/g, ''),
|
||||
wrapperEnd = '</span>';
|
||||
|
||||
let wrapKey = key => keyWrapper + strEscape(key) + wrapperEnd,
|
||||
@@ -52,8 +52,6 @@ export default function getAbstract(obj, {
|
||||
{
|
||||
str = toStr(str);
|
||||
|
||||
str = str.replace(/\\/g, '');
|
||||
|
||||
if (contain(SPECIAL_VAL, str) || startWith(str, 'Array['))
|
||||
{
|
||||
return specialWrapper + strEscape(str) + wrapperEnd;
|
||||
|
||||
@@ -177,6 +177,90 @@ export var endWith = _.endWith = (function ()
|
||||
return exports;
|
||||
})();
|
||||
|
||||
/* ------------------------------ toStr ------------------------------ */
|
||||
|
||||
export var toStr = _.toStr = (function ()
|
||||
{
|
||||
/* Convert value to a string.
|
||||
*
|
||||
* |Name |Type |Desc |
|
||||
* |------|------|----------------|
|
||||
* |val |* |Value to convert|
|
||||
* |return|string|Resulted string |
|
||||
*
|
||||
* ```javascript
|
||||
* toStr(null); // -> ''
|
||||
* toStr(1); // -> '1'
|
||||
* toStr(false); // -> 'false'
|
||||
* toStr([1, 2, 3]); // -> '1,2,3'
|
||||
* ```
|
||||
*/
|
||||
|
||||
/* module
|
||||
* env: all
|
||||
* test: all
|
||||
*/
|
||||
|
||||
function exports(val)
|
||||
{
|
||||
return val == null ? '' : val.toString();
|
||||
}
|
||||
|
||||
return exports;
|
||||
})();
|
||||
|
||||
/* ------------------------------ escapeJsStr ------------------------------ */
|
||||
|
||||
export var escapeJsStr = _.escapeJsStr = (function ()
|
||||
{
|
||||
/* Escape string to be a valid JavaScript string literal between quotes.
|
||||
*
|
||||
* http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
|
||||
*
|
||||
* |Name |Type |Desc |
|
||||
* |------|------|----------------|
|
||||
* |str |string|String to escape|
|
||||
* |return|string|Escaped string |
|
||||
*
|
||||
* ```javascript
|
||||
* escapeJsStr('\"\n'); // -> '\\"\\\\n'
|
||||
* ```
|
||||
*/
|
||||
|
||||
/* module
|
||||
* env: all
|
||||
* test: all
|
||||
*/
|
||||
|
||||
/* dependencies
|
||||
* toStr
|
||||
*/
|
||||
|
||||
function exports(str)
|
||||
{
|
||||
return toStr(str).replace(regEscapeChars, function (char)
|
||||
{
|
||||
switch (char)
|
||||
{
|
||||
case '"':
|
||||
case '\'':
|
||||
case '\\':
|
||||
return '\\' + char;
|
||||
case '\n': return '\\n';
|
||||
case '\r': return '\\r';
|
||||
// Line separator
|
||||
case '\u2028': return '\\u2028';
|
||||
// Paragraph separator
|
||||
case '\u2029': return '\\u2029';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var regEscapeChars = /["'\\\n\r\u2028\u2029]/g;
|
||||
|
||||
return exports;
|
||||
})();
|
||||
|
||||
/* ------------------------------ escapeJsonStr ------------------------------ */
|
||||
|
||||
export var escapeJsonStr = _.escapeJsonStr = (function ()
|
||||
@@ -184,11 +268,13 @@ export var escapeJsonStr = _.escapeJsonStr = (function ()
|
||||
/* Escape json string.
|
||||
*/
|
||||
|
||||
/* dependencies
|
||||
* escapeJsStr
|
||||
*/
|
||||
|
||||
function exports(str)
|
||||
{
|
||||
return str.replace(/\\/g, '\\\\')
|
||||
.replace(/"/g, '\\"')
|
||||
.replace(/\f|\n|\r|\t/g, '');
|
||||
return escapeJsStr(str).replace(/\\'/g, '\'');
|
||||
}
|
||||
|
||||
return exports;
|
||||
@@ -369,7 +455,7 @@ export var isArr = _.isArr = (function (exports)
|
||||
*
|
||||
* |Name |Type |Desc |
|
||||
* |------|-------|----------------------------------|
|
||||
* |val |* |The value to check |
|
||||
* |val |* |Value to check |
|
||||
* |return|boolean|True if value is an `Array` object|
|
||||
*
|
||||
* ```javascript
|
||||
@@ -1087,38 +1173,6 @@ export var filter = _.filter = (function ()
|
||||
return exports;
|
||||
})();
|
||||
|
||||
/* ------------------------------ toStr ------------------------------ */
|
||||
|
||||
export var toStr = _.toStr = (function ()
|
||||
{
|
||||
/* Convert value to a string.
|
||||
*
|
||||
* |Name |Type |Desc |
|
||||
* |------|------|----------------|
|
||||
* |val |* |Value to convert|
|
||||
* |return|string|Resulted string |
|
||||
*
|
||||
* ```javascript
|
||||
* toStr(null); // -> ''
|
||||
* toStr(1); // -> '1'
|
||||
* toStr(false); // -> 'false'
|
||||
* toStr([1, 2, 3]); // -> '1,2,3'
|
||||
* ```
|
||||
*/
|
||||
|
||||
/* module
|
||||
* env: all
|
||||
* test: all
|
||||
*/
|
||||
|
||||
function exports(val)
|
||||
{
|
||||
return val == null ? '' : val.toString();
|
||||
}
|
||||
|
||||
return exports;
|
||||
})();
|
||||
|
||||
/* ------------------------------ uniqId ------------------------------ */
|
||||
|
||||
export var uniqId = _.uniqId = (function ()
|
||||
|
||||
@@ -976,6 +976,58 @@ export var escape = _.escape = (function ()
|
||||
return exports;
|
||||
})();
|
||||
|
||||
/* ------------------------------ escapeJsStr ------------------------------ */
|
||||
|
||||
export var escapeJsStr = _.escapeJsStr = (function ()
|
||||
{
|
||||
/* Escape string to be a valid JavaScript string literal between quotes.
|
||||
*
|
||||
* http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
|
||||
*
|
||||
* |Name |Type |Desc |
|
||||
* |------|------|----------------|
|
||||
* |str |string|String to escape|
|
||||
* |return|string|Escaped string |
|
||||
*
|
||||
* ```javascript
|
||||
* escapeJsStr('\"\n'); // -> '\\"\\\\n'
|
||||
* ```
|
||||
*/
|
||||
|
||||
/* module
|
||||
* env: all
|
||||
* test: all
|
||||
*/
|
||||
|
||||
/* dependencies
|
||||
* toStr
|
||||
*/
|
||||
|
||||
function exports(str)
|
||||
{
|
||||
return toStr(str).replace(regEscapeChars, function (char)
|
||||
{
|
||||
switch (char)
|
||||
{
|
||||
case '"':
|
||||
case '\'':
|
||||
case '\\':
|
||||
return '\\' + char;
|
||||
case '\n': return '\\n';
|
||||
case '\r': return '\\r';
|
||||
// Line separator
|
||||
case '\u2028': return '\\u2028';
|
||||
// Paragraph separator
|
||||
case '\u2029': return '\\u2029';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var regEscapeChars = /["'\\\n\r\u2028\u2029]/g;
|
||||
|
||||
return exports;
|
||||
})();
|
||||
|
||||
/* ------------------------------ escapeJsonStr ------------------------------ */
|
||||
|
||||
export var escapeJsonStr = _.escapeJsonStr = (function ()
|
||||
@@ -983,11 +1035,13 @@ export var escapeJsonStr = _.escapeJsonStr = (function ()
|
||||
/* Escape json string.
|
||||
*/
|
||||
|
||||
/* dependencies
|
||||
* escapeJsStr
|
||||
*/
|
||||
|
||||
function exports(str)
|
||||
{
|
||||
return str.replace(/\\/g, '\\\\')
|
||||
.replace(/"/g, '\\"')
|
||||
.replace(/\f|\n|\r|\t/g, '');
|
||||
return escapeJsStr(str).replace(/\\'/g, '\'');
|
||||
}
|
||||
|
||||
return exports;
|
||||
|
||||
Reference in New Issue
Block a user