第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

變量中的JavaScript反斜杠(\)導(dǎo)致錯誤

變量中的JavaScript反斜杠(\)導(dǎo)致錯誤

冉冉說 2019-08-05 15:31:18
變量中的JavaScript反斜杠(\)導(dǎo)致錯誤在Javascript中,當(dāng)我在一些變量中添加反斜杠時:var ttt = "aa ///\\\";var ttt = "aa ///\"; Javscript顯示錯誤。如果我嘗試限制用戶輸入此字符,我也會收到錯誤:(("aaa ///\\\").indexOf('"') != -1)限制用戶輸入的反斜杠不是一個好策略,因為你必須向用戶顯示惱人的消息。為什么我用反斜杠得到錯誤?
查看完整描述

3 回答

?
飲歌長嘯

TA貢獻(xiàn)1951條經(jīng)驗 獲得超3個贊

反斜杠(\)是Javascript中的轉(zhuǎn)義字符(以及許多其他類C語言)。這意味著當(dāng)Javascript遇到反斜杠時,它會嘗試轉(zhuǎn)義以下字符。例如,\n是換行符(而不是反斜杠后跟字母n)。

為了輸出一個反斜杠,你需要逃脫。這意味著\\將輸出一個反斜杠(\\\\并將輸出兩個,依此類推)。原因"aa ///\"不起作用是因為反斜杠轉(zhuǎn)義"(將打印文字引號),因此你的字符串沒有正確終止。同樣,"aa ///\\\"也行不通,因為最后一個反斜杠再次逃脫了引用。

請記住,對于要輸出的每個反斜杠,您需要提供兩個 Javascript 。


查看完整回答
反對 回復(fù) 2019-08-05
?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗 獲得超8個贊

您可能想嘗試以下操作,這或多或少是逃避用戶輸入的標(biāo)準(zhǔn)方法:

function stringEscape(s) {
    return s ? s.replace(/\\/g,'\\\\').replace(/\n/g,'\\n').replace(/\t/g,'\\t').replace(/\v/g,'\\v').replace(/'/g,"\\'").replace(/"/g,'\\"').replace(/[\x00-\x1F\x80-\x9F]/g,hex) : s;
    function hex(c) { var v = '0'+c.charCodeAt(0).toString(16); return '\\x'+v.substr(v.length-2); }}

這將使用轉(zhuǎn)義反斜杠替換所有反斜杠,然后將其他不可打印的字符轉(zhuǎn)義為其轉(zhuǎn)義形式。它還可以轉(zhuǎn)義單引號和雙引號,因此即使在eval中也可以將輸出用作字符串構(gòu)造函數(shù)(考慮到您正在使用用戶輸入,這本身就是一個壞主意)。但無論如何,它應(yīng)該完成你想要的工作。


查看完整回答
反對 回復(fù) 2019-08-05
  • 3 回答
  • 0 關(guān)注
  • 1482 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號