Во-первых, ваше выражение регулярного выражения неверно.Удалите фигурные скобки.
Во-вторых, вы создаете свое регулярное выражение, проверяя его неправильно.В настоящее время вы настраиваете поиск по регулярному выражению, используя полную строку.Вы также не конвертируете strOriginal
в Unicode.Это означает, что ваша searchUnicode
функция должна выглядеть следующим образом:
var strOriginal = "Mr. ViỆt has a blue house"
var strOriginalUnicode = toUnicode(strOriginal)
var strSearch = toUnicode('vie')
var regexUnicode = toRegexUnicode(strSearch)
var result = regexUnicode.test(strOriginalUnicode)
Далее мы можем упростить вашу toRegexUnicode
функцию следующим образом:
// Convert string to be Regex Unicode
function toRegexUnicode(theString) {
theString = theString.replace(/\\/g, "\\\\")
return new RegExp(theString)
}
Нет необходимости повторно использовать ваше преобразованиеметод.Вы также отметите глобальные замены всех \
на \\
.Это потому, что Regex рассматривает обратную косую черту как escape-символ, поэтому нам нужно экранировать наш escape-символ.