Ваш шаблон
\\u[0-9A-F]{4}
будет соответствовать части строки, где буквально содержит обратный слеш, затем u
, за которым следуют 4 шестнадцатеричных символа.Но ваша входная строка содержит только 6 символов, 5 из которых «привет»:
console.log('Hello\u0B70');
console.log('Hello\u0B70'.length);
Вы должны соответствовать фактическому символу Юникода там:
function replacer(match, p1) {
console.log("match: ", match);
console.log("p1: ", p1);
return "World";
}
var newString = 'Hello\u0B70'.replace(/\u0B70/g, replacer);
console.log(newString);
Если вы хотите сопоставить любому символу Юникода вообще (что в основном означает «любой символ»), вы можете использовать набор символов,как
[\u0000-\uFFFF]
, но алфавитные символы, такие как «Hello», тоже, конечно, Unicode, так что они также будут сопоставлены, что не то, что вам нужно - определите точный диапазон символов, который вы хотитесопоставить и поместить этот диапазон в набор символов.