首页 > 解决方案 > 数字或三个字母的正则表达式模式

问题描述

我需要对具有不同类型值的表字段进行排序:

StupidTable.js使我能够添加自定义字母数字数据类型,但我无法定义正则表达式模式。

我试过这段代码:

$("table").stupidtable({
  "alphanum":function(a,b){

       console.log(a,b)

       var pattern = "^[a-zA-Z0-9_.-]*$";
       var re = new RegExp(pattern);

       var aNum = re.exec(a).slice(1);
       var bNum = re.exec(b).slice(1);

       return parseInt(aNum,10) - parseInt(bNum,10);
 }
})

但它不起作用。您可以在此页面上单击“nr”选项卡检查问题:测试

标签: regex

解决方案


尝试这样的事情:

const regexPattern = /^[\d\w]{3}/gm;

如果字符串仅包含 3 位数字或 3 个字母代码,则此模式允许您捕获字符串。如果要捕获 0 而不是 000,则需要将 {3} 更改为 {1,3},但这也会捕获 A 而不是 AAA。

您也可以考虑以某种方式规范化您的数据,例如将 A 转换为 AAA 并将 0 转换为 000。假设您的变量类型是字符串而不是数字类型,这可能会有所帮助,原因有很多。那有意义吗?

您可以在下面的链接中查看我是如何创建此模式的,并尝试一些调整以使其适合您。我经常使用这个工具,它还会为你生成一些不同语言的代码。祝你的项目好运,让我知道进展如何。

正则表达式101.com


推荐阅读