Software engineering notes

Javascript Basics

Ajax

jQuery

$(document).ready(function(){
    $.ajax({
        url: '/test/test_response.php',
        type: "POST",
        data: 'test=1&test2=33',
        beforeSend: function(html) {
            $('#loading').removeClass('hide');
        },
        success: function(response) {
            alert(response);
        },
        complete: function () {
           $('#loading').addClass('hide');
        },
        error: function(xhr, statusText, err){
          alert("Error:" + xhr.status);
        }
    });
});

PHP

// POST
header('Content-Type: application/json');
echo 'test='.$_POST['test'].'; test2= '.$_POST['test2'];

// GET
echo 'test='.$_GET['test'].'; test2= '.$_GET['test2'];

// JSON
$value = json_decode(file_get_contents('php://input'));         //取得JSON字串並且解析
echo json_encode($value);                                       //將$value轉成JSON格式傳回

Regex

match

Example 1

str = 'aabbddeeffggiiCC';
reFee=/cc/i;                        //補上i(忽略大小寫) 才會為true
document.write(reFee.test(str));    //檢查有沒有cc,會返回 true

Example 2

str = 'aabbddeeffCCggii';
reFee = new RegExp("cc","i");       //沒補上"i"會返回false , 補上"i"是true
alert(reFee.test(str));             //檢查有沒有cc,會返回true

replace

Example

str = 'aabbccddeeffCCggiicc';
var re = new  RegExp('cc');                     // 只比對第一個結果 : aabb哈哈ddeeffCCggiicc
//var re = new  RegExp('cc','g');               // 字串為'cc'的全部比對 , 結果為 : aabb哈哈ddeeffCCggii哈哈
//var re = new  RegExp('cc','ig');              // 不分大小寫的全部比對 , 結果為 : aabb哈哈ddeeff哈哈ggii哈哈
document.write(str.replace(re,'哈哈'));

取得比對結果存進RegExp變數 :

var str = 'aabbccddeeffccggiiCC';
var re =  new RegExp(/(cc)/ig);                 //忽略大小寫及全部比對,才會為true
document.write(str.replace(re,'[$1]'));         //結果為 : aabb[cc]ddeeff[cc]ggii[CC]
var result = str.match(re);                     //結果為 cc,cc,CC
for(var item in result){
    alert(result[item]);                        //分別alert出 cc ; cc ; CC
}

format 1000000 > $ 1,000,000

"$ " + x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");

其他

處理圖片將 [img] 轉為 <img>

function con_img_code(str)
{
    var reg = new RegExp(/\[img src='((http[s]{0,1}|ftp):\/\/[a-zA-Z0-9\.\-\_\/]+\.([a-zA-Z]{2,4})(:\d+)?(\/[a-zA-Z0-9\.\-~!@#$%^&*+?:_\/=<>]*)?)']/g);
    var str2 = str.replace(reg, "<img class="width_700" src="$1">");
    str2 = str2.replace(/  /g, "&nbsp;&nbsp;");
    str2 = str2.replace(/\n/g,"<br />");
    return str2;
}

註 :

  1. 從資料庫撈出資料並且找出符合的圖片格式
  2. 取代成 <img> 並且指定 class 屬性
  3. 第5行跟第6行非必要,主要是處理空白及換行