使用正则表达式进行Javascript字符串操作
Javascript string manipulations with regex
大家好,我想知道是否有人能帮我?在我的网站上,我创建了一个博客。在JavaScript中,我创建了一个格式化文本的程序。它使用正则表达式来格式化/转换文本。目前,它正在取得一些意想不到的结果。如果你滚动到这个链接的帖子底部,你会看到一些随机的标签。我不知道它们是从哪里来的,也不知道它们为什么会出现。如果有人能帮忙,我将不胜感激。
这是用于格式化文本的javascript:
function viewPost(val1) {
var msg = val1.innerHTML;
console.log(msg);
// disable < and > to prevent scripting attacks
msg = msg.replace(/<(.*?)>/gi, "<$1>");
msg = msg.replace(/<'/(.*?)>/gi, "</$1>");
// preserve new lines
msg = msg.replace(/'n/gi, "<br />");
//colon
msg = msg.replace(/':/gi, ":");
// Basic BBCodes.
// head large
msg = msg.replace(/'[hdlg']/gi, '<h1>');
msg = msg.replace(/'['/hdlg']/gi, '</h1>');
// head medium
msg = msg.replace(/'[hdmd']/gi, '<h2>');
msg = msg.replace(/'['/hdmd']/gi, '</h2>');
// head small
msg = msg.replace(/'[hdsm']/gi, '<h3>');
msg = msg.replace(/'['/hdsm']/gi, '</h3>');
// bold text
msg = msg.replace(/'[b']/gi, "<strong>");
msg = msg.replace(/'['/b']/gi, "</strong>");
// italic text
msg = msg.replace(/'[i']/gi, "<em>");
msg = msg.replace(/'['/i']/gi, "</em>");
// underlined text
msg = msg.replace(/'[u']/gi, "<u>");
msg = msg.replace(/'['/u']/gi, "</u>");
// centre text
msg = msg.replace(/'[c']/gi, '<p style="text-align:center;">');
msg = msg.replace(/'['/c']/gi, "</p>");
// left align text
msg = msg.replace(/'[l']/gi, '<p style="text-align:left;">');
msg = msg.replace(/'['/l']/gi, "</p>");
// right align text
msg = msg.replace(/'[r']/gi, '<p style="text-align:right;">');
msg = msg.replace(/'['/r']/gi, "</p>");
// justify text
msg = msg.replace(/'[j']/gi, '<p style="text-align:justify;">');
msg = msg.replace(/'['/j']/gi, "</p>");
// code blocks
msg = msg.replace(/'[code']/gi, '<div style="background:#484848;color:#ffffff;text-align:left;border-radius:8px;padding:10px;overflow:hidden;">');
msg = msg.replace(/'['/code']/gi, '</div>');
// def lists
msg = msg.replace(/'[def']/gi, '<dl>');
msg = msg.replace(/'['/def']/gi, '</dl>');
// def term
msg = msg.replace(/'[term']/gi, '<dt>');
msg = msg.replace(/'['/term']/gi, '</dt>');
// def description
msg = msg.replace(/'[desc']/gi, '<dd>');
msg = msg.replace(/'['/desc']/gi, '</dd>');
// unordered list
msg = msg.replace(/'[unord']/gi, '<ul>');
msg = msg.replace(/'['/unord']/gi, '</ul>');
// ordered list
msg = msg.replace(/'[ord']/gi, '<ol>');
msg = msg.replace(/'['/ord']/gi, '</ol>');
// list item
msg = msg.replace(/'[item']/gi, '<li>');
msg = msg.replace(/'['/item']/gi, '</li>');
// links
msg = msg.replace(/'[url=(.*?)'](.*?)/gi, '<a href="$1" target="_blank">$2');
msg = msg.replace(/'['/url']/gi, '</a>');
// images
msg = msg.replace(/'[postpic=(.*?)'sclass=(.*?)'stitle=(.*?)'salt=(.*?)'sstyle=(.*?)']/gi, '<img src="/images/postAssets/$1" class="$2" title="$3" alt="$4" style="$5" />');
msg = msg.replace(/'['/postpic']/gi, "");
// font colour [colour=COL] [/colour]
msg = msg.replace(/'[colour=(.*?)']/gi, '<span style="color:$1;">');
msg = msg.replace(/'['/colour']/gi, '</span>');
// tables
msg = msg.replace(/'[table']/gi, '<table style="padding: 5px;">');
msg = msg.replace(/'['/table']/gi, '</table>');
// table row
msg = msg.replace(/'[trow']/gi, '<tr style="border:1px solid #000000;">');
msg = msg.replace(/'['/trow']/gi, '</tr>');
// table header
msg = msg.replace(/'[thead']/gi, '<th style="padding: 5px;">');
msg = msg.replace(/'['/thead']/gi, '</th>');
// table data
msg = msg.replace(/'[tdata']/gi, '<td style="padding: 5px;">');
msg = msg.replace(/'['/tdata']/gi, '</td>');
// subscript
msg = msg.replace(/'[sub']/gi, '<sub>');
msg = msg.replace(/'['/sub']/gi, '</sub>');
// superscript
msg = msg.replace(/'[sup']/gi, '<sup>');
msg = msg.replace(/'['/sup']/gi, '</sup>');
val1.innerHTML = msg;
console.log(val1.innerHTML);}
如有任何建议,我们将不胜感激。正如我所说,我不确定为什么会发生这种情况,但我很确定这是我的JavaScript的问题。它显示的页面是一个.aspx页面,不确定这是否与它有关,但我想我会说以防万一。如果需要任何进一步的细节,请告诉我,我会提供。
您的代码块包含如下文本:
List<string> cols = new List<string>();
这看起来像两个<string>
标签
和
<ul>
<li>Colour
<ul>
这些需要转义,因为它们当前可能会被val1.innerHTML = msg;
调用中的浏览器自动关闭。
相关文章:
- 可变大小的JavaScript字符串如何成为基元类型
- 如何将angularjs中的javascript字符串输出为循环数组
- 如何使用gump任务将html转换为javascript字符串
- 替换变量时,JavaScript字符串replace()不起作用
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 如何从django中的url解析javascript字符串
- 拆分javascript字符串以获得所需的值
- 使用Bootstrap'在Javascript字符串中的popover插件
- 如何替换javascript字符串中的前三个连字符
- 将JavaScript字符串转换为整数
- jquery/javascript字符串中的撇号
- 正在对java中的javascript字符串进行转义
- 如何在Javascript字符串中添加vaule
- Javascript:字符串中有效的基于数组的替换
- 具有负值的Javascript字符串.slice()
- javascript字符串替换$1(如果它是某个值)
- 将子函数的JavaScript字符串转换为实际函数
- JavaScript字符串中的换行符也保存为.txt
- 将Javascript字符串var传递给HTML href标记
- JavaScript 字符串字母和数字检查