Ajax的傳回值中有斷行符號(也叫分行符號)解決辦法

來源:互聯網
上載者:User

  1. $.get('ajax.php教程',  {
  2.     id: $('#test').attr('value');
  3. }, function(data) {
  4.     if(data == 1) {
  5.         $('#test_div').remove();
  6.         alert('刪除成功!');
  7.     } else {
  8.         alert('刪除失敗,請重試!');
  9.     }
  10. });
這是一個用jquery實現的並使用Get方法地送的資料,把一個ID為test的值發送給了ajax.php這個頁面,ajax.php是這樣寫的:
  1. <?php
  2. if(isset($_GET['id'])) {
  3.     $result = mysql教程_query('DELETE FROM user WHERE id=' . $_GET['id'] . '');
  4.     echo $result;
  5. }
  6. ?>
這樣的話,如果刪除成功,會返回一個影響行數,通常情況下是1,但在回呼函數裡我們alert()測試一下,會是這種情況:
ajax傳回值有換行
很明顯可以看得出,Ajax回呼函數裡這個1的前麵包含了斷行符號(分行符號),並且不止一個,這樣嚴重影響程式的健壯性,有些情況下還可能出現錯誤,因此我們需要用到Regex把它去除,回呼函數裡我們可以這麼寫:
  1. $.get('ajax.php',  {
  2.     id: $('#test').attr('value');
  3. }, function(data) {
  4.     newData = data.replace(/rn/g,'');
  5.     if(newData == 1) {
  6.         $('#test_div').remove();
  7.         alert('刪除成功!');
  8.     } else {
  9.         alert('刪除失敗,請重試!');
  10.     }
  11. });
不難看出,代碼中使用了newData = data.replace(/rn/g,"")這一句,我們可以使用Regex“rn”將它替換為空白,“r”就是列印頭從右端回到左端,“n”就是列印頭往下走一個行高(或者說是紙往上走一個行高),這樣替換後,我們就可以得到一個乾淨的傳回值,下圖是使用正則清除Ajax傳回值後的效果:
ajax傳回值有換行

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.