mirror of
https://github.com/Mibew/mibew.git
synced 2025-03-23 02:21:23 +03:00
Fix "replace" Handlebars.js helper
This commit is contained in:
parent
ab35143e18
commit
40fef4e360
@ -193,14 +193,17 @@
|
|||||||
* </code>
|
* </code>
|
||||||
*/
|
*/
|
||||||
Handlebars.registerHelper('replace', function(search, replacement, options) {
|
Handlebars.registerHelper('replace', function(search, replacement, options) {
|
||||||
// Convert serch value to string and escape special regexp characters
|
var unescapedSearch = search
|
||||||
var searchPattern = search.toString().replace(
|
// Allow using new line character
|
||||||
/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,
|
.replace(/\\n/g, '\n')
|
||||||
"\\$&"
|
// Allow using tab character
|
||||||
),
|
.replace(/\\t/g, '\t')
|
||||||
re = new RegExp(searchPattern, 'g');
|
// Allow using all UTF characters in \uXXX format.
|
||||||
|
.replace(/\\u([A-Za-z0-9])/g, function(match, code) {
|
||||||
|
return String.fromCharCode(parseInt(code, 16));
|
||||||
|
});
|
||||||
|
|
||||||
return options.fn(this).replace(re, replacement);
|
return options.fn(this).split(unescapedSearch).join(replacement);
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user