要理解為什么要轉(zhuǎn)義,比如說引號(hào)中包含了引號(hào),那么就不能判斷那個(gè)引號(hào)開始,那些引號(hào)是結(jié)束標(biāo)志,所以用轉(zhuǎn)義,將引號(hào)中的引號(hào)給轉(zhuǎn)義了
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),鼓樓企業(yè)網(wǎng)站建設(shè),鼓樓品牌網(wǎng)站建設(shè),網(wǎng)站定制,鼓樓網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,鼓樓網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
采納哦
簡(jiǎn)單說一下業(yè)務(wù)場(chǎng)景,前臺(tái)用戶通過input輸入內(nèi)容,在離開焦點(diǎn)時(shí),將內(nèi)容在div中顯示。
這時(shí)遇到一個(gè)問題,如果用戶輸入了html標(biāo)簽,則在div顯示中,標(biāo)簽被解析。
由于是純前端操作,不涉及后端,因此需要通過js對(duì)輸入內(nèi)容進(jìn)行轉(zhuǎn)義。
這里提供一個(gè)非常簡(jiǎn)單有效的轉(zhuǎn)義方案,利用了innerHTML和innerText
注:火狐不支持innerText,需要使用
textContent
屬性,而IE早期版本不支持此屬性,為了同時(shí)兼容IE及火狐,需要進(jìn)行判斷操作.
因?yàn)閕nnerText(textContent)會(huì)獲取純文本內(nèi)容,忽略html節(jié)點(diǎn)標(biāo)簽,而innerHTML會(huì)顯示標(biāo)簽內(nèi)容,
所以我們先將需轉(zhuǎn)義的內(nèi)容賦值給innerText(textContent),再獲取它的innerHTML屬性,這時(shí)獲取到的就是轉(zhuǎn)義后文本內(nèi)容。
代碼如下:
function
HTMLEncode(html)
{
var
temp
=
document.createElement("div");
(temp.textContent
!=
null)
?
(temp.textContent
=
html)
:
(temp.innerText
=
html);
var
output
=
temp.innerHTML;
temp
=
null;
return
output;
}
var
tagText
=
"pb123456/b/p";
console.log(HTMLEncode(tagText));//pb123456/b/p
通過測(cè)試結(jié)果,可以看到html標(biāo)簽及符都被轉(zhuǎn)義后保存。
同理,反轉(zhuǎn)義的方法為先將轉(zhuǎn)義文本賦值給innerHTML,然后通過innerText(textContent)獲取轉(zhuǎn)義前的文本內(nèi)容
function
HTMLDecode(text)
{
var
temp
=
document.createElement("div");
temp.innerHTML
=
text;
var
output
=
temp.innerText
||
temp.textContent;
temp
=
null;
return
output;
}
var
tagText
=
"pb123456/b/p";
var
encodeText
=
HTMLEncode(tagText);
console.log(encodeText);//pb123456/b/p
console.log(HTMLDecode(encodeText));
//pb123456/b/p
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
JScript 提供了一些特殊字符,允許在字符串中包括一些無法直接鍵入的字符。每個(gè)字符都以反斜杠開始。反斜杠是一個(gè)轉(zhuǎn)義字符,表示 JScript 解釋器下面的字符為特殊字符。
轉(zhuǎn)義序列 字符
\b 退格
\f 走紙換頁
\n 換行
\r 回車
\t 橫向跳格 (Ctrl-I)
\' 單引號(hào)
\" 雙引號(hào)
\\ 反斜杠
請(qǐng)注意,由于反斜杠本身用作轉(zhuǎn)義符,因此不能直接在腳本中鍵入一個(gè)反斜杠。如果要產(chǎn)生一個(gè)反斜杠,必須一起鍵入兩個(gè)反斜杠 (\\)。
document.write('The image path is C:\\webstuff\\mypage\\gifs\\garden.gif.');
document.write('The caption reads, "After the snow of \'97. Grandma\'s house is covered."');
首先,你是用字符串構(gòu)造一個(gè)正則,在字符串里反斜杠就轉(zhuǎn)義一次。
然后字符串構(gòu)造為正則的時(shí)候會(huì)再次對(duì)串中的反斜杠進(jìn)行轉(zhuǎn)義。
所以對(duì)于'\at'進(jìn)行匹配,應(yīng)該是四個(gè)反斜杠。
或者用這種語法:
var?re1?=?/.at/g;
var?re3?=?/\.at/g;
//?match?'\at'
var?re4?=?/\\at/g;
1.html中的轉(zhuǎn)義:在html中如果遇到轉(zhuǎn)義字符(如“ ”),不管你的頁面字符編碼是utf-8亦或者是GB2312,都會(huì)直接打印成相應(yīng)的字符;而當(dāng)遇到(如:“\u8981”【此處的8981是16進(jìn)制值】)時(shí),則不會(huì)打印成相應(yīng)字符。
/*
*html標(biāo)記的轉(zhuǎn)義
*@example
*pHello World!/p
* ||等價(jià)于
*pHello World!/p
* ||等價(jià)于
*pHello?World!/p*/
" " == "?"; //false
" ".length == 6; //true
2.html中的unicode編碼:(如:”?”,【此處的160是10進(jìn)制值】)
3.javascript內(nèi)的unicode編碼:當(dāng)遇到unicode編碼時(shí)(如:“\u8981”),則會(huì)打印成相應(yīng)的字符;而在javasript標(biāo)簽中,不會(huì)對(duì)轉(zhuǎn)義字符進(jìn)行轉(zhuǎn)義(如“ ?”)
/*
*javascript中unicode編碼
*@example
*"\u8981" == "要"; //true
*/
"\u8981".length == 1; //true
4.javascript中的轉(zhuǎn)義:(如:”\n”會(huì)轉(zhuǎn)義成換行符)
5.javascript中unicode編碼和字符的相互轉(zhuǎn)化
/*
*unicode編碼和字符相互轉(zhuǎn)化
*/
"要".charCodeAt() == 35201; //true,35201為10進(jìn)制值
String.fromCharCode(35201) == "要"; //true,35201為10進(jìn)制值
"\u89" + "81" == "要"; //false,值為"u8981",是由于"\u"會(huì)轉(zhuǎn)義成"u"
//從unicode編碼到字符的方法
eval("(\"\u89" + "81\")") == "要"; //true,8981為16進(jìn)制值
因?yàn)閖ava的正則表達(dá)式在是字符串里的,\是java字符串中的轉(zhuǎn)義符。\也是正則表達(dá)式中的轉(zhuǎn)義符。那么只加一個(gè)\的話,只能說明在字符串中轉(zhuǎn)義符,而java需要進(jìn)一步把普通字符串中的\變成正則表達(dá)式中的\,像是更深一則轉(zhuǎn)化的意思,這樣\\以后的意思是正則表達(dá)式中的轉(zhuǎn)義符(\)。
要把\把變成正則表達(dá)式中的\,所以\\是轉(zhuǎn)義了一個(gè)\
我的回答簡(jiǎn)而言之,在java中(別的語言有別的規(guī)矩),正則表達(dá)式字符串,和普通字串是兩個(gè)東西。
新聞標(biāo)題:轉(zhuǎn)義javascript,轉(zhuǎn)義字符占幾個(gè)字節(jié)
網(wǎng)頁路徑:http://chinadenli.net/article26/dsdspjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、定制開發(fā)、靜態(tài)網(wǎng)站、網(wǎng)站制作、網(wǎng)站策劃、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)