Я хотел бы использовать создать объект, который содержит регулярные выражения в качестве значения ключа. Я попытался использовать следующий синтаксис:
var kv = {
/key/g : "value"
};
Но это не соответствует JavaScript lint:
SyntaxError: invalid property id
Как я могу это исправить?
Update
Справочная информация. Причина, по которой я хочу сделать это, - это реализовать обходной путь, который исправляет неправильный Unicode в результате HTTP API. Я знаю, что это очень хаки, но поскольку я не контролирую код API-сервера, я думаю, что это лучшее, что я могу сделать.
В настоящее время я реализовал сопоставление с помощью массива ключей и массива значений:
function fixUnicode(text) {
var result = text;
var keys = [];
var values = [];
keys.push(/é/g); values.push("é");
keys.push(/è/g); values.push("è");
keys.push(/ê/g); values.push("ê");
keys.push(/ë/g); values.push("ë");
keys.push(/Ã /g); values.push("à");
keys.push(/ä/g); values.push("ä");
keys.push(/â/g); values.push("â");
keys.push(/ù/g); values.push("ù");
keys.push(/û/g); values.push("û");
keys.push(/ü/g); values.push("ü");
keys.push(/ô/g); values.push("ô");
keys.push(/ö/g); values.push("ö");
keys.push(/î/g); values.push("î");
keys.push(/ï/g); values.push("ï");
keys.push(/ç/g); values.push("ç");
for (var i = 0; i < keys.length; ++i) {
result = result.replace(keys[i], values[i]);
}
return result;
}
Но я хочу реализовать, чтобы использовать объект JavaScript для сопоставления ключей как значений:
function fixUnicode(text) {
var result = text;
var keys = {
/é/g : "é",
/è/g : "è"
// etc...
};
for (var key in keys) {
result = result.replace(key, keys[key]);
}
return result;
}