RegEx空格清理不一致

时间:2011-06-17 20:35:50

标签: javascript jquery regex

我有以下小空白清理功能,当它通过Tab键到下一个tabindex失去焦点时效果很好,如果我只是通过点击当前获得焦点的元素而失去焦点并重新检查清理是在“字符串”

的末尾完成除[\ t] + $之外的操作
function cleanUpYourAct(){
$(':text').each(function(index){    
var messy = $(this).val();
var clean = messy.replace(/\s+/g," ");
var trimmed = clean.replace(/^[ \t]+|[ \t]+$/,"");
$(this).val(trimmed);   
});
}

$(':text').blur(cleanUpYourAct);

有什么想法吗?也许我聚集在一起的正则表达集是垃圾?

谢谢

1 个答案:

答案 0 :(得分:2)

你没有在第二个正则表达式上进行全局替换,所以如果开头有空格,那么你最后也不会替换空格:

var trimmed = clean.replace(/^[ \t]+|[ \t]+$/g,"");

修改

您可能还会考虑仅对作为事件目标的元素执行此操作。

类似的东西:

function cleanUpYourAct () {
  var messy = $(this).val()
    , clean = messy.replace(/\s+/g, " ")
    , trimmed = clean.replace(/^[ \t]+|[ \t]+$/g, "")
  $(this).val(trimmed)
}