我在这里的第一篇文章。我在网站上有一个功能,显示随机生成的法语短语,挑战读者在文本框中将其翻译成英语。单击按钮时,输入的文本将与所有可能的答案进行比较(给定短语有多个正确的翻译)。我已经四处寻找答案,但似乎没有什么能适合我的情况。
这里是jQuery:
var correctAnswer = function(){$('#correctmessage').show('fast');$('#errormessage').hide('fast');}
var wrongAnswer = function(){$('#errormessage').show('fast');$('#correctmessage').hide('fast');}
$('#1').find('button').on('click', function(){
var text = $(this).parent().find('.translatefield').val();
var compareText = "I went to the cinema";
var compareText2 = "I have been to the cinema";
if (text == compareText || text == compareText2) {
correctAnswer();
}
else {
wrongAnswer();
}
});
所以我想知道我是否可以把比较'变量变成一个变量,即“我去了电影院,或者我去过电影院等等”。在一个变量内整洁。但主要是我需要知道如何在if中调用该变量,以便它也可以接受没有重音字符的答案,无论是大写还是小写......我希望这很清楚!感谢您提供的任何帮助,这一直困扰着我一段时间!
答案 0 :(得分:1)
正如Mark Holland所评论,使用数组作为比较短语。
如果你正在使用jQuery,你可以使用jQuery.inArray()
。
https://api.jquery.com/jQuery.inArray/
var compareText = ['我去了电影院','我去过电影院'];
if ($.inArray(text.toLowerCase(), compareText)) {
... do stuff
}
要忽略重音,请使用以下解决方案:
String.prototype.removeAccents = function(){
return this
.replace(/[áàãâä]/gi,"a")
.replace(/[éè¨ê]/gi,"e")
.replace(/[íìïî]/gi,"i")
.replace(/[óòöôõ]/gi,"o")
.replace(/[úùüû]/gi, "u")
.replace(/[ç]/gi, "c")
.replace(/[ñ]/gi, "n")
.replace(/[^a-zA-Z0-9]/g," ");
}
对Luan Castro的信用 Perform a find/match with javascript, ignoring special language characters (accents, for example)?
答案 1 :(得分:0)
正如Mark Holland所说,数组会回答你的第一个问题。
要忽略重音,快速搜索会给我这个答案:
为了忽略大写/小写,快速搜索给了我这个答案。
答案 2 :(得分:0)
如何将字符串设置为一个数组并迭代此数组以与答案进行比较?