{"ScriptPreparationCode":"var subject = \u0027\u00C9clate l\u00E9crou, d\u00E9chire la feuille, repara la m\u00E1quina, recalienta la sopa, decora la habitaci\u00F3n, despierta, spettacolo, \u00FCberlegen, pi\u0119kny, szcz\u0119\u015Bcie, \u03C5\u03C0\u03AD\u03C1\u03BF\u03C7\u03BF\u03C2.\u0027;\r\nvar needle = \u0027on\u0027;\r\nvar options = {\r\n \tusage: \u0027search\u0027,\r\n\tsensitivity: \u0027base\u0027\r\n};\r\n\r\nvar collator = new Intl.Collator(undefined, options);\r\n\r\nfunction normalizeText(text) {\r\n return text.normalize(\u0027NFD\u0027).replace(/[\\u0300-\\u036f]/g, \u0022\u0022).toLowerCase();\r\n}\r\n\r\nfunction searchWithNormalizedText(string, query) {\r\n const nString = normalizeText(string);\r\n const nQuery = normalizeText(query);\r\n return nString.includes(nQuery);\r\n}","TestCases":[{"Name":"Intl.Collator","Code":"collator.compare(subject.toLowerCase(), needle.toLowerCase());","IsDeferred":false},{"Name":"localeCompare","Code":"subject.toLowerCase().localeCompare(needle.toLowerCase(), undefined, options);","IsDeferred":false},{"Name":"normalized","Code":"searchWithNormalizedText(subject, needle);","IsDeferred":false}]}