Browse Source

text html中字符处理

es6
windy 7 years ago
parent
commit
6361ef0239
  1. 2
      bi/base.js
  2. 27
      bi/core.js
  3. 2
      dist/base.js
  4. 29
      dist/bundle.js
  5. 8
      dist/bundle.min.js
  6. 27
      dist/core.js
  7. 2
      src/base/single/text.js
  8. 6
      src/core/func/dom.js
  9. 21
      src/core/func/function.js

2
bi/base.js

@ -581,7 +581,7 @@ BI.Text = BI.inherit(BI.Single, {
setText: function (text) {
BI.Text.superclass.setText.apply(this, arguments);
this.options.text = text;
this.text.element.html(( this[0] && this[0].ownerDocument || document ).createTextNode( (text + "").replaceAll(" ", " ") ));
this.text.element.html(BI.Func.formatSpecialCharInHtml(text));
}
});

27
bi/core.js

@ -19278,7 +19278,7 @@ BI.extend(jQuery.fn, {
*/
__textKeywordMarked__: function (text, keyword, py) {
if (!BI.isKey(keyword) || (text + "").length > 100) {
return this.html(( this[0] && this[0].ownerDocument || document ).createTextNode((text + "").replaceAll(" ", " ")));
return this.html(BI.Func.formatSpecialCharInHtml(text));
}
keyword = keyword + "";
keyword = BI.toUpperCase(keyword);
@ -19301,7 +19301,7 @@ BI.extend(jQuery.fn, {
if (tidx >= 0) {
this.append(textLeft.substr(0, tidx));
this.append($("<span>").addClass("bi-keyword-red-mark")
.html(( this[0] && this[0].ownerDocument || document ).createTextNode(textLeft.substr(tidx, keyword.length).replaceAll(" ", "&nbsp;"))));
.html(BI.Func.formatSpecialCharInHtml(textLeft.substr(tidx, keyword.length))));
textLeft = textLeft.substr(tidx + keyword.length);
if (py != null) {
@ -19310,7 +19310,7 @@ BI.extend(jQuery.fn, {
} else if (pidx != null && pidx >= 0 && Math.floor(pidx / text.length) === Math.floor((pidx + keyword.length - 1) / text.length)) {
this.append(textLeft.substr(0, pidx));
this.append($("<span>").addClass("bi-keyword-red-mark")
.html(( this[0] && this[0].ownerDocument || document ).createTextNode(textLeft.substr(pidx, keyword.length).replaceAll(" ", "&nbsp;"))));
.html(BI.Func.formatSpecialCharInHtml(textLeft.substr(pidx, keyword.length))));
if (py != null) {
py = py.substr(pidx + keyword.length);
}
@ -19915,6 +19915,27 @@ BI.extend(BI.Func, {
matched: matched,
finded: finded
}
},
/**
* 将字符串中的尖括号等字符encode成html能解析的形式
* @param str
*/
formatSpecialCharInHtml: function (str) {
return (str + "").replaceAll("\\s|<=?|>=?", function (str) {
switch (str) {
case "<":
return "&lt;";
case "<=":
return "&le;";
case ">":
return "&gt;";
case ">=":
return "&ge;";
default:
return "&nbsp;";
}
});
}
});

2
dist/base.js vendored

@ -581,7 +581,7 @@ BI.Text = BI.inherit(BI.Single, {
setText: function (text) {
BI.Text.superclass.setText.apply(this, arguments);
this.options.text = text;
this.text.element.html(( this[0] && this[0].ownerDocument || document ).createTextNode( (text + "").replaceAll(" ", "&nbsp;") ));
this.text.element.html(BI.Func.formatSpecialCharInHtml(text));
}
});

29
dist/bundle.js vendored

@ -19278,7 +19278,7 @@ BI.extend(jQuery.fn, {
*/
__textKeywordMarked__: function (text, keyword, py) {
if (!BI.isKey(keyword) || (text + "").length > 100) {
return this.html(( this[0] && this[0].ownerDocument || document ).createTextNode((text + "").replaceAll(" ", "&nbsp;")));
return this.html(BI.Func.formatSpecialCharInHtml(text));
}
keyword = keyword + "";
keyword = BI.toUpperCase(keyword);
@ -19301,7 +19301,7 @@ BI.extend(jQuery.fn, {
if (tidx >= 0) {
this.append(textLeft.substr(0, tidx));
this.append($("<span>").addClass("bi-keyword-red-mark")
.html(( this[0] && this[0].ownerDocument || document ).createTextNode(textLeft.substr(tidx, keyword.length).replaceAll(" ", "&nbsp;"))));
.html(BI.Func.formatSpecialCharInHtml(textLeft.substr(tidx, keyword.length))));
textLeft = textLeft.substr(tidx + keyword.length);
if (py != null) {
@ -19310,7 +19310,7 @@ BI.extend(jQuery.fn, {
} else if (pidx != null && pidx >= 0 && Math.floor(pidx / text.length) === Math.floor((pidx + keyword.length - 1) / text.length)) {
this.append(textLeft.substr(0, pidx));
this.append($("<span>").addClass("bi-keyword-red-mark")
.html(( this[0] && this[0].ownerDocument || document ).createTextNode(textLeft.substr(pidx, keyword.length).replaceAll(" ", "&nbsp;"))));
.html(BI.Func.formatSpecialCharInHtml(textLeft.substr(pidx, keyword.length))));
if (py != null) {
py = py.substr(pidx + keyword.length);
}
@ -19915,6 +19915,27 @@ BI.extend(BI.Func, {
matched: matched,
finded: finded
}
},
/**
* 将字符串中的尖括号等字符encode成html能解析的形式
* @param str
*/
formatSpecialCharInHtml: function (str) {
return (str + "").replaceAll("\\s|<=?|>=?", function (str) {
switch (str) {
case "<":
return "&lt;";
case "<=":
return "&le;";
case ">":
return "&gt;";
case ">=":
return "&ge;";
default:
return "&nbsp;";
}
});
}
});
@ -26428,7 +26449,7 @@ BI.Text = BI.inherit(BI.Single, {
setText: function (text) {
BI.Text.superclass.setText.apply(this, arguments);
this.options.text = text;
this.text.element.html(( this[0] && this[0].ownerDocument || document ).createTextNode( (text + "").replaceAll(" ", "&nbsp;") ));
this.text.element.html(BI.Func.formatSpecialCharInHtml(text));
}
});

8
dist/bundle.min.js vendored

File diff suppressed because one or more lines are too long

27
dist/core.js vendored

@ -19278,7 +19278,7 @@ BI.extend(jQuery.fn, {
*/
__textKeywordMarked__: function (text, keyword, py) {
if (!BI.isKey(keyword) || (text + "").length > 100) {
return this.html(( this[0] && this[0].ownerDocument || document ).createTextNode((text + "").replaceAll(" ", "&nbsp;")));
return this.html(BI.Func.formatSpecialCharInHtml(text));
}
keyword = keyword + "";
keyword = BI.toUpperCase(keyword);
@ -19301,7 +19301,7 @@ BI.extend(jQuery.fn, {
if (tidx >= 0) {
this.append(textLeft.substr(0, tidx));
this.append($("<span>").addClass("bi-keyword-red-mark")
.html(( this[0] && this[0].ownerDocument || document ).createTextNode(textLeft.substr(tidx, keyword.length).replaceAll(" ", "&nbsp;"))));
.html(BI.Func.formatSpecialCharInHtml(textLeft.substr(tidx, keyword.length))));
textLeft = textLeft.substr(tidx + keyword.length);
if (py != null) {
@ -19310,7 +19310,7 @@ BI.extend(jQuery.fn, {
} else if (pidx != null && pidx >= 0 && Math.floor(pidx / text.length) === Math.floor((pidx + keyword.length - 1) / text.length)) {
this.append(textLeft.substr(0, pidx));
this.append($("<span>").addClass("bi-keyword-red-mark")
.html(( this[0] && this[0].ownerDocument || document ).createTextNode(textLeft.substr(pidx, keyword.length).replaceAll(" ", "&nbsp;"))));
.html(BI.Func.formatSpecialCharInHtml(textLeft.substr(pidx, keyword.length))));
if (py != null) {
py = py.substr(pidx + keyword.length);
}
@ -19915,6 +19915,27 @@ BI.extend(BI.Func, {
matched: matched,
finded: finded
}
},
/**
* 将字符串中的尖括号等字符encode成html能解析的形式
* @param str
*/
formatSpecialCharInHtml: function (str) {
return (str + "").replaceAll("\\s|<=?|>=?", function (str) {
switch (str) {
case "<":
return "&lt;";
case "<=":
return "&le;";
case ">":
return "&gt;";
case ">=":
return "&ge;";
default:
return "&nbsp;";
}
});
}
});

2
src/base/single/text.js

@ -114,7 +114,7 @@ BI.Text = BI.inherit(BI.Single, {
setText: function (text) {
BI.Text.superclass.setText.apply(this, arguments);
this.options.text = text;
this.text.element.html(( this[0] && this[0].ownerDocument || document ).createTextNode( (text + "").replaceAll(" ", "&nbsp;") ));
this.text.element.html(BI.Func.formatSpecialCharInHtml(text));
}
});

6
src/core/func/dom.js

@ -20,7 +20,7 @@ BI.extend(jQuery.fn, {
*/
__textKeywordMarked__: function (text, keyword, py) {
if (!BI.isKey(keyword) || (text + "").length > 100) {
return this.html(( this[0] && this[0].ownerDocument || document ).createTextNode((text + "").replaceAll(" ", "&nbsp;")));
return this.html(BI.Func.formatSpecialCharInHtml(text));
}
keyword = keyword + "";
keyword = BI.toUpperCase(keyword);
@ -43,7 +43,7 @@ BI.extend(jQuery.fn, {
if (tidx >= 0) {
this.append(textLeft.substr(0, tidx));
this.append($("<span>").addClass("bi-keyword-red-mark")
.html(( this[0] && this[0].ownerDocument || document ).createTextNode(textLeft.substr(tidx, keyword.length).replaceAll(" ", "&nbsp;"))));
.html(BI.Func.formatSpecialCharInHtml(textLeft.substr(tidx, keyword.length))));
textLeft = textLeft.substr(tidx + keyword.length);
if (py != null) {
@ -52,7 +52,7 @@ BI.extend(jQuery.fn, {
} else if (pidx != null && pidx >= 0 && Math.floor(pidx / text.length) === Math.floor((pidx + keyword.length - 1) / text.length)) {
this.append(textLeft.substr(0, pidx));
this.append($("<span>").addClass("bi-keyword-red-mark")
.html(( this[0] && this[0].ownerDocument || document ).createTextNode(textLeft.substr(pidx, keyword.length).replaceAll(" ", "&nbsp;"))));
.html(BI.Func.formatSpecialCharInHtml(textLeft.substr(pidx, keyword.length))));
if (py != null) {
py = py.substr(pidx + keyword.length);
}

21
src/core/func/function.js

@ -68,6 +68,27 @@ BI.extend(BI.Func, {
matched: matched,
finded: finded
}
},
/**
* 将字符串中的尖括号等字符encode成html能解析的形式
* @param str
*/
formatSpecialCharInHtml: function (str) {
return (str + "").replaceAll("\\s|<=?|>=?", function (str) {
switch (str) {
case "<":
return "&lt;";
case "<=":
return "&le;";
case ">":
return "&gt;";
case ">=":
return "&ge;";
default:
return "&nbsp;";
}
});
}
});

Loading…
Cancel
Save