不是'翻译'字符串正确
Not 'translating' string properly?
在下面的代码中,我试图创建一个介于虚构语言和英语之间的简单"翻译器"。如果工作正常,请拨打translate.toEnglish("hopeloplopo")
将返回hello
调用translate.toLanguage("hello")
将返回hopeloplopo
基本上,我希望它用字母+op替换每个非元音,反之亦然
这就是目前发生的情况:translate.toLanguage("hello")
返回"OPello"
translate.toEnglish("hopeloplopo")
返回未定义的
请帮忙,谢谢!
var vowels = ['a', 'e', 'i', 'o', 'u']
var translate = {
toEnglish:function(words) {
function strip(text) {
text = text.replace("OP", "").replace("op", "");
if (text.toLowerCase().indexOf("op") >= 0) strip(text)
else return text;
}
if (words.toLowerCase().indexOf("op") >= 0) strip(words)
else return words;
},
toLanguage:function(words) {
for (var i=0;i<words.length; i++) {
if ($.inArray(words[i], vowels)<0) {
var split = words.split(words[i]).join("OP");
return split;
}
else {
return words;
}
}
},
}
我不确定你的问题是什么,所以我只写了我该如何做你描述的
var translate = (function () {
function toEnglish(str) {
return str.replace(/(?=[a-z])([^aeiou])op/gi, '$1');
}
function toLanguage(str) {
return str.replace(/(?=[a-z])([^aeiou])/gi, function ($0, $1) {
return $1 + ($1 === $1.toUpperCase() ? 'OP' : 'op');
});
}
return {
toEnglish: toEnglish,
toLanguage: toLanguage
};
}());
然后
translate.toLanguage('Hello'); // "HOPeloplopo"
translate.toEnglish('HOPeloplopo'); // "Hello"
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Node.js v6.2.0类扩展不是函数错误
- 直接下载文件,而不是从window.open(url)
- 使用压缩的JavaScript文件(不是运行时压缩)
- 控制台返回var不是't定义,但它是
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 为什么不是't运行此Javascript的Chrome
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 禁用(而不是隐藏)浏览器滚动条
- 为什么会出现错误,“UncaughtTypeError:undefined不是函数”
- TypeError:_this.store.getState在使用来自Redux的连接时不是函数
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- 推荐在JavaScript中执行存储为字符串的函数,而不是使用eval
- 翻译 API 以仅转换文本部分(而不是 HTML)
- 不是'翻译'字符串正确
- 谷歌翻译:TranslateElement不是一个函数