如何让在Html中特殊字符不被转义

如何让在Html中特殊字符不被转义,第1张

转义字符有很多,在实际编程过程中常常会用到,那么下面介绍一下常用的转义字符。

1、首先打开pycharm,新建一个工程和python文件,如图。

2、打印一段话,输入print添加内容,如下图所示。

3、接着转义字符"\n"换行,如图所示,转义字符"\t"制表符。

4、然后转义字符"\""双引号和"\'"单引号,如下图所示。

5、最后转义字符"\r"回车,如下图所示就完成了。

Html中特殊字符不被转义,可以使用预格式化标签。

pre 是 Preformatted text(预格式化文本) 的缩写。使用此标签可以把代码中的空格和换行直接显示到页面上。

例如HTML代码:

 

1

2

3

4

5

<pre>

 if (xx >5) {

 print "比5大!\n"

 }

 </pre>

浏览器显示效果:

if (xx >5) {

print "比5大!\n"

}

<textarea></textarea>之间包含有类似的这种转义字符的时候总会被解析,倒是可以把所有的"&"通过程序替换成"&",但是有些本来就是"&"的也会被转换,这就错了。如何让<textarea></textarea>之间包含的文本原封不动的显示出来呢?

总结如下:

解决方法有两种:

第1种:

1

2

3

4

5

6

<body>

<textarea id='t' rows=20 cols=20></textarea>

<script>

document.getElementById('t').innerText='a<&>'

</script>

</body>

第2种:

/*将字串转为html格式*/

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

public String strToHtml(String s)

 {

 if (s==null||s.equals("")) return ""

 s = s.replaceAll("&", "&")

 s = s.replaceAll("<", "<")

 s = s.replaceAll(">", ">")

 s = s.replaceAll(" ", " ")

 // s = s.replaceAll("/n", "")

 // s = s.replaceAll("'", "'")

 return s

 }

 /*将html格式转为字串*/

 public String strToHtml(String s)

 {

 if (s==null||s.equals("")) return ""

 s = s.replaceAll("&","&")

 s = s.replaceAll("<","<")

 s = s.replaceAll(">",">")

 s = s.replaceAll(" "," ")

 //s = s.replaceAll("","/n")

 //s = s.replaceAll("'","'")

 return s

 }

最后一点:jQuery的.html()方法默认会转义的,这种情况使用.text()就不会转义了。

// 字符串反转义

function enXssHtml(text) {

const matchList = {

"<": "<",

">": ">",

"&": "&",

"": '""',

""": '"',

"'": "'",

}

let regStr = "(" + Object.keys(matchList).toString() + ")"

// ↑ ------------【 提取匹配列表key值 】.【组数转字符串】

regStr = regStr.replace(/,/g, ")|(")

// ↑ 通过匹配将其更新为正则的字符串类型

const regExp = new RegExp(regStr, "g")

// ↑ ------- 字符串 转 正则 方法

return text.replace(regExp, (match) =>matchList[match])

// ↑ ------ 替换方法 (正则, 当前key =>返回当前被匹配的key值)

}

// 字符串反转义

function deXssHtml(text) {

const matchList = {

"<": "<",

">": ">",

"&": "&",

'"': '"',

'"': '"',

"'": "'",

}

let regStr = "(" + Object.keys(matchList).toString() + ")"

// ↑ ------------【 提取匹配列表key值 】.【组数转字符串】

regStr = regStr.replace(/,/g, ")|(")

// ↑ 通过匹配将其更新为正则的字符串类型

const regExp = new RegExp(regStr, "g")

// ↑ ------- 字符串 转 正则 方法

return text.replace(regExp, (match) =>matchList[match])

// ↑ ------ 替换方法 (正则, 当前key =>返回当前被匹配的key值)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7072353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存