I would like to use create a object that contains regular expressions as the key value. I tried to use the following syntax:
var kv = {
/key/g : value
};
But it fails according JavaScript lint:
SyntaxError: invalid property id
How can I fix it?
Update
Background: The reason why I want to do this is to implement a workaround that fixes wrong unicode in a HTTP API result. I know this is very hackish, but since I have no control over the API server code I think this is the best I can do.
Currently I implemented the mapping by having a keys array and a values array:
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;
}
But I want to implement to use a JavaScript object to map keys as values:
function fixUnicode(text) {
var result = text;
var keys = {
/é/g : é,
/è/g : è
// etc...
};
for (var key in keys) {
result = result.replace(key, keys[key]);
}
return result;
}