1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-05-04 15:43:15 +02:00

Merge branch 'fix_regex_with_stars'

This commit is contained in:
Maciej Sitarz 2017-12-06 22:05:51 +01:00
commit 8231252f34
2 changed files with 40 additions and 13 deletions

View file

@ -1773,8 +1773,21 @@ export class TableFilter {
// first checks if there is any operator (<,>,<=,>=,!,*,=,{,},
// rgx:)
//regexp
if (hasRE) {
//in case regexp throws
try {
//operator is removed
let srchArg = term.replace(reRe, '');
let rgx = new RegExp(srchArg);
occurence = rgx.test(cellValue);
} catch (ex) {
occurence = false;
}
}
// lower equal
if (hasLE) {
else if (hasLE) {
occurence = numData <= parseNb(
term.replace(reLe, ''),
decimal
@ -1837,18 +1850,6 @@ export class TableFilter {
//non-empty
else if (hasNM) {
occurence = !isEmptyString(cellValue);
}
//regexp
else if (hasRE) {
//in case regexp throws
try {
//operator is removed
let srchArg = term.replace(reRe, '');
let rgx = new RegExp(srchArg);
occurence = rgx.test(cellValue);
} catch (ex) {
occurence = false;
}
} else {
// If numeric type data, perform a strict equality test and
// fallback to unformatted number string comparison

View file

@ -24,6 +24,32 @@
);
});
test('Regex operator - rgx:b.*e', function() {
tf.clearFilters();
tf.setFilterValue(1, 'rgx:b.*e');
tf.filter();
var filteredData = tf.getFilteredData();
deepEqual(tf.getValidRows().length, 4, 'Expected number of matches');
deepEqual(
filteredData[3],
[8, ['Adelaide', 'Brisbane', '2045', '2.15', '40']],
'Expected row data'
);
});
test('Regex operator - rgx:b.+e', function() {
tf.clearFilters();
tf.setFilterValue(1, 'rgx:b.+e');
tf.filter();
var filteredData = tf.getFilteredData();
deepEqual(tf.getValidRows().length, 3, 'Expected number of matches');
deepEqual(
filteredData[2],
[8, ['Adelaide', 'Brisbane', '2045', '2.15', '40']],
'Expected row data'
);
});
test('Empty operator - [empty]', function() {
tf.clearFilters();
tf.setFilterValue(4, '[empty]');