用于MongoDB重音搜索的PHP脚本需要翻译成JavaScript
我发现了一个PHP脚本,它允许查找一些重音字符中的文本。我的项目是nodejs+mongodb,所以我尝试翻译JavaScript,但根本无法翻译它。因为我不太懂PHP,所以需要一些帮助来翻译 PHP脚本源代码来自 这是我需要翻译的JavaScript代码。。。任何帮助都将被感谢!谢谢用于MongoDB重音搜索的PHP脚本需要翻译成JavaScript,php,javascript,regex,node.js,mongodb,Php,Javascript,Regex,Node.js,Mongodb,我发现了一个PHP脚本,它允许查找一些重音字符中的文本。我的项目是nodejs+mongodb,所以我尝试翻译JavaScript,但根本无法翻译它。因为我不太懂PHP,所以需要一些帮助来翻译 PHP脚本源代码来自 这是我需要翻译的JavaScript代码。。。任何帮助都将被感谢!谢谢 function accentToRegex(word){ var ACCENT_STRINGS = 'ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËẼÌÍÎÏĨÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæç
function accentToRegex(word){
var ACCENT_STRINGS = 'ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËẼÌÍÎÏĨÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëẽìíîïĩðñòóôõöøùúûüýÿ';
var NO_ACCENT_STRINGS = 'SOZsozYYuAAAAAAACEEEEEIIIIIDNOOOOOOUUUUYsaaaaaaaceeeeeiiiiionoooooouuuuyy';
var from = (ACCENT_STRINGS).split(decode_utf8(ACCENT_STRINGS));
var to = NO_ACCENT_STRINGS.split(NO_ACCENT_STRINGS.toLocaleLowerCase());
var text = decode_utf8(word);
var regex = new Array();
for(value in to)
{
if (!regex[value])
{
regex[value] = from[value];
} else {
regex[value] = value;
}
}
for (rg_key in regex)
{
// "$TESTONE $TESTONE".replace( new RegExp("\\$TESTONE","gm"),"foo")
// text = preg_replace("/[$rg]/", "_{$rg_key}_", $text);
text = text.replace(new RegExp(/[rg]/), new RegExp(_{rg_key}_)) ;
}
foreach (rg in regex)
{
// $text = preg_replace("/_{$rg_key}_/", "[$rg]", $text);
text = text.replace(new RegExp(/[rg]/), new RegExp(_{rg_key}_)) ;
}
return encode_utf8(text); //Edited from $text to text
}
function encode_utf8(s) {
return encodeURIComponent(s);
}
function decode_utf8(s) {
return decodeURIComponent(s);
}
错误是
这个
应该是
return encode_utf8(text); // no dollar-sign
但我没有超越这一点
JavaScriptRegExp
构造函数需要一个不带分隔符的字符串。分隔符通常为/但表达式试图使用下划线。JS只使用/
new RegExp("hello")
new RegExp("[xy]") // will look for either the character 'x' or 'y'
new RegExp(yourStringVariable)
new RegExp("[" + someVar + "]")
// .. will look for any of the letters in the variable someVar
以下是使用RegExp的各种方法
JS中的每个语句都有两个独立的单词(对象中的变量)
。但它也不受欢迎,也没有得到广泛支持
您的第二个foreach还引用了变量rg\u key
,它在这里没有一个有意义的值
我想还有一些东西需要转换。我编辑过,但仍然得到关于RegExp的错误。请看截图。刚刚在上面编辑过。谢谢
return encode_utf8(text); // no dollar-sign
new RegExp("hello")
new RegExp("[xy]") // will look for either the character 'x' or 'y'
new RegExp(yourStringVariable)
new RegExp("[" + someVar + "]")
// .. will look for any of the letters in the variable someVar