I have problem to make regExp for search panel
&& (item.get('prodAddDate') >= dateStartValue.format("Y-m-d"))
&& (item.get('prodAddDate') <= dateEndValue.format("Y-m-d"));
I'm not sure if this is task for refExp but don't have any other idea
Problem is that when I'm don't fill field with date I can't filtr data with other conditions
I was trying something like this but don't working
&& ((item.get('prodAddDate') >= dateStartValue.format("Y-m-d")) || (new RegExp(dateStartValue)).test(item.get('prodAddDate'))) &&
((item.get('prodAddDate') <= dateEndValue.format("Y-m-d")) || (new RegExp(dateEndValue)).test(item.get('prodAddDate')));
Not entirely sure what you're trying to do, but here are some pieces of information that I hope can help you to solve your problem.
The &&
operator has priority over ||
, which means that:
A || B && C || D
Is equivalent to:
A || (B && C) || D
Not to:
(A || B) && (C || D)
You can compare Date
objects directly:
// example data
var d1 = new Date('2012-12-12'),
d2 = new Date('2012-12-12'),
d3 = new Date('2013-01-01');
And get the result you expect with <
, >
, <=
, and >=
:
// logical results
d1 < d3 // true
d1 < d2 // false
d2 > d3 // false
d1 <= d2 // true
d1 => d2 // true
But not with equality comparison ==
:
d1 == d2 // false
// yet...
d1 <= d2 && d1 => d2 // true
Conclusion: to test if one date is before or after another one, direct comparison is OK. But, in order to test if two dates are identical, use string comparisons:
// is this the same day?
d1.format('Y-m-d') === d2.format('Y-m-d') // true
// is this the same day and hour?
d1.format('Y-m-d H:i:s') === d2.format('Y-m-d H:i:s') // true
Ext.isEmpty
returns true
for: null
, undefined
and empty strings ''
only.
Ext.isEmpty(null) // true
Ext.isEmpty(undefined) // true
Ext.isEmpty('') // true
Ext.isEmpty(' ') // false
Ext.isEmpty(false) // false
// etc.
That may be useful to address your empty field case:
...
&& (Ext.isEmpty(item.get('prodAddDate') || item.get('prodAddDate') >= dateStartValue)
&& (Ext.isEmpty(item.get('prodAddDate') || item.get('prodAddDate') <= dateEndValue)
What's this obsession about regex? They're useful for complex string testing/extracting, but that's all. You should probably forget about them for a while, dude ;p