国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

簡單所以不要忽視,關于/r/n和/n程序員應了解的實際應用

2019-11-17 02:18:38
字體:
來源:轉載
供稿:網友

簡單所以不要忽視,關于/r/n和/n程序員應了解的實際應用

眾所周知,/r叫回車符,/n叫換行符。

由于歷史原因,windows環境下的換行符是/r/n;(文章最后會稍微解釋這個歷史原因)

linux和html等開源或公開標準中的換行符是/n.

記錄這篇筆記的原因是:

textarea中含換行符時,在C#中接收后自動增加了一個/r符號。假設這個字段叫Name nvarchar(50),由于自動增加了一個/r符號,在前臺驗證明明通過了,但是保存到庫的時候會報錯。因為現在的長度是51.

如果讀者有興趣可以這樣測試:

在<textarea id="name"></textarea>中輸入字符1,然后回車,然后輸入2

在JS中檢測長度得到3,$('#name').val().length===3 is true

在C#中得到長度是4,name.length==4 is true

由于換行符是不可見字符,可以用replace(//n/g,'').length的方法檢測,如在JS中:

可以看到textarea中沒有/r符號。

再看C#中

sqlParams.ElementAt(1).Value.ToString().Replace("/r/n","").Length2sqlParams.ElementAt(1).Value.ToString().Length4

可以看到,C#中得到的換行符是有/r的。

故會出現我上門說的這個問題。

解決辦法是:

保存數據之前把/r去掉,replace("/r","");

為什么要這么做?

即使你不去掉/r,讀出來的數據重新顯示在textarea中的時候,換行符又變換成了/n,沒有/r。

這一切的變化都是操作系統和瀏覽器的行為。所以在保存數據庫之前去掉/r是合理的。

在html中顯示只讀文本的時候,別忘了html的換行符是<br/>

所以顯示只讀文本前還要replace('/n','<br/>')。

PS:

windows保留/r/n作為換行符的原因:

回車鍵為什么叫回車鍵,大家有想過沒有,字面意思是回去的車子。

第一臺打印機,每一行打印完了之后在打印第二行之前,這個噴墨的玩意兒需要先回到這一行的行首,這叫回車,然后跳到下一行,這才叫換行。/r/n就是回車加換行。反正保留和延續傳統,就一直把換行叫做回車換行。只有windows平臺下的技術才是這樣的,所有linux和其他開源標準中都是把/n作為換行符。


上一篇:14反射程序集

下一篇:C#獲取硬件信息

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 本溪| 金溪县| 昭平县| 长海县| 南靖县| 邛崃市| 崇仁县| 米泉市| 义马市| 三明市| 洛浦县| 崇礼县| 泉州市| 宝应县| 泸水县| 新乡市| 鄄城县| 巢湖市| 如皋市| 潞城市| 双流县| 灵璧县| 永川市| 志丹县| 富裕县| 济阳县| 潼关县| 怀化市| 共和县| 大同市| 本溪| 康保县| 姚安县| 大渡口区| 临海市| 凤翔县| 太谷县| 名山县| 郸城县| 华坪县| 博白县|