|
Lines 579-585
jQuery.fn.dataTable.ext.errMode = function(settings, note, message) {
Link Here
|
| 579 |
function build_query(col, value){ |
579 |
function build_query(col, value){ |
| 580 |
|
580 |
|
| 581 |
// escape SQL special characters |
581 |
// escape SQL special characters |
| 582 |
value = value.replace(/(\%|\_|\\)/g, "\\$1" ); |
582 |
value_escaped = value.replace(/\\/g, "\\$1" ); |
|
|
583 |
// escape SQL LIKE special characters |
| 584 |
value_like_escaped = value.replace(/(\%|\_|\\)/g, "\\$1"); |
| 583 |
|
585 |
|
| 584 |
var parts = []; |
586 |
var parts = []; |
| 585 |
var attributes = col.data.split(':'); |
587 |
var attributes = col.data.split(':'); |
|
Lines 587-599
jQuery.fn.dataTable.ext.errMode = function(settings, note, message) {
Link Here
|
| 587 |
var part = {}; |
589 |
var part = {}; |
| 588 |
var attr = attributes[i]; |
590 |
var attr = attributes[i]; |
| 589 |
let criteria = options.criteria; |
591 |
let criteria = options.criteria; |
| 590 |
if ( value.match(/^\^(.*)\$$/) ) { |
592 |
if ( value_escaped.match(/^\^(.*)\$$/) ) { |
| 591 |
value = value.replace(/^\^/, '').replace(/\$$/, ''); |
593 |
value_escaped = value_escaped.replace(/^\^/, '').replace(/\$$/, ''); |
| 592 |
criteria = "exact"; |
594 |
criteria = "exact"; |
| 593 |
} |
595 |
} |
| 594 |
part[!attr.includes('.')?'me.'+attr:attr] = criteria === 'exact' |
596 |
part[!attr.includes('.')?'me.'+attr:attr] = criteria === 'exact' |
| 595 |
? value |
597 |
? value_escaped |
| 596 |
: {like: (['contains', 'ends_with'].indexOf(criteria) !== -1?'%':'') + value + (['contains', 'starts_with'].indexOf(criteria) !== -1?'%':'')}; |
598 |
: {like: (['contains', 'ends_with'].indexOf(criteria) !== -1?'%':'') + value_like_escaped + (['contains', 'starts_with'].indexOf(criteria) !== -1?'%':'')}; |
| 597 |
parts.push(part); |
599 |
parts.push(part); |
| 598 |
} |
600 |
} |
| 599 |
return parts; |
601 |
return parts; |
| 600 |
- |
|
|