前兩天做了一個意見收集表單,測試提出問題如下:
1.空格回車不能正確顯示;(回車消失,空格變短)
2.建議為空也能提交;
首先解決空格回車不能正確顯示的問題,不同瀏覽器下textarea的回車符不一致:
IE瀏覽器:'\r\n';
FF瀏覽器,chrome瀏覽器:'\n';
空格符不同瀏覽器下都為:'\s';
但是在html中,換行符為 '</br>'; 空格符為 '?'
因此我們需要將textarea中的 '\r\n' , '\n' , '\s' 進行替換:
var getFormatCode = function(strValue){
return strValue.replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' ');
}
var adviceText = getFormatCode($('#advice').val()); //將值進行替換
其次解決建議為空也能提交的問題,本來我以為我對意見為空的情況作了判斷:
if (adviceText ==="" || adviceText===null){
alert("建議需求不能為空")
}
實際上這樣對輸入空格判斷無效,需要用正則表達式來判斷:
var input = /^[\s]*$/; //判斷空格
var getFormatCode = function(strValue){
return strValue.replace(/\r\n/g, '').replace(/\n/g, '').replace(/\s/g, ''); //將換行空格都轉換為html中的空格
}
var adviceText = getFormatCode($('#advice').val());
input.test(adviceText) //如若全為空格,值為true;
附上手機號碼以及電子郵箱的正則表達式:
var phone = /^1\d{10}$/; //首數字為1,總長度為11位;test值為true表示格式正確;
var email = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;