我有一个数组
var myArray = [
{
"field1":"Value 1",
"IDs":""
},
{
"field1":"Value 2",
"IDs":"123"
},
{
"field1":"Value 3",
"IDs":"1233; 222"
}
];
用于过滤记录的变量
var filterID = 123;
在数组中,ID可以为空或具有单个值或由分号分隔的多个值。结果应始终返回所有空白ID以及所有匹配的ID。所以: filterID = 123应该返回'Value 1'和'Value 2'而不是'Value 3'。
显然我无法检查每个ID是否包含带字符串比较的fitlerID,因为它还应该返回'Value 3'。 '1233'包含'123'。
一种方法是拆分每个ID字符串并删除分号并与每个位进行比较。
但是,我想知道是否有更简单的方法来检查使用正则表达式?
即正则表达式将返回数组的元素,其中id为空白或者123是分号分隔列表中的值之一?
答案 0 :(得分:2)
您可以对空字符串使用边界标记class FILE {
public:
// Would like to alias boost::filesystem::rename as rename here
};
和OR(\b
):
|
这意味着/\b123\b|^$/
只有在它是整个单词时才会匹配(即由123
以外的字符包围),[A-Za-z0-9_]
将捕获空字符串。 More info on the \b
marker here
这里有demo of the regex和fiddle,带有示例功能。