【问题标题】:How best to set text alignment in a table如何最好地在表格中设置文本对齐方式
【发布时间】:2017-05-30 03:43:25
【问题描述】:

有人知道 jQuery 插件或 sn-p 可以根据内容自动对齐表格中的单元格吗?

具体来说,除非单元格中有可见的非数字相关字符,否则所有表格单元格都将右对齐,然后它将左对齐。我想使用像这样的正则表达式来识别单元格中的非数字相关字符:

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

有没有真正简单的方法来实现这一点? 我会这样想:

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

可以解决问题,但我认为“包含”不能采用正则表达式。

【问题讨论】:

    标签: jquery plugins text-alignment


    【解决方案1】:

    可以使用过滤功能:

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

    【讨论】:

    • 我必须在此处修改正则表达式以匹配原始(不使用否定字符集),因为我想左对齐任何不基于数字的字段。这个例子虽然更简洁,但确实使用了静态正则表达式(测试而不是匹配)并假定整个表已经正确对齐(巧合的是)。 “过滤器”功能是一种很好的学习方式。
    【解决方案2】:
      $(function(){
        $("table td").each(function(){
          if($(this).text().match(/^[0-9.%$()]+$/)){
            $(this).addClass("right");
          } else {
            $(this).addClass("left");
          }
        });
      });
    

    【讨论】:

    • 在您的正则表达式中添加一些缺失的字符使这项工作正常进行(字符集中缺少加号和空格)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    • 1970-01-01
    • 2021-10-01
    • 2017-09-08
    • 2010-11-22
    • 2018-08-12
    • 2011-05-26
    相关资源
    最近更新 更多