2010-05-14 40 views
0

有谁知道一个jQuery插件或代码段能够根据内容自动文本对齐表中的单元格吗?如何在表格中设置文本对齐方式

具体而言,除非单元格中存在可见的非数字相关字符,否则所有表格单元格都将右对齐,然后将其左对齐。我想用这样的正则表达式中的细胞识别非数字字符相关:

/[^0-9% +-()]/ 

是否有一个真正简单的方法来做到这一点? 我想是这样的:

$("td:contains('[^0-9% +-()]')").addClass("left"); 

会做的伎俩,但我不认为“包含”可以采取正则表达式。

回答

1

您可以使用过滤功能:

$("td").filter(function(){return /^[0-9.%$()]+$/.test($(this).text())}).addClass("left"); 
+0

我不得不在这里修改正则表达式以匹配原始(与unsanchored与否定字符集),因为我想左对齐任何不基于数字的字段。 这个例子虽然更简洁,但使用静态正则表达式(测试而不是匹配),并假设整个表已经是正确对齐的(恰巧它是)。 '过滤器'功能是一个很好的学习。 – ericslaw 2010-05-17 14:39:15

1
$(function(){ 
    $("table td").each(function(){ 
     if($(this).text().match(/^[0-9.%$()]+$/)){ 
     $(this).addClass("right"); 
     } else { 
     $(this).addClass("left"); 
     } 
    }); 
    }); 
+0

加入一些字符缺失你的正则表达式使这个工作(缺少加和空间的字符集)。 – ericslaw 2010-05-17 14:32:02

相关问题