如何在javascript中操作字符串?
我是javascript新手,需要一些帮助!我想制作一个神奇的8球脚本,为某些问题提供一个具体的答案。到目前为止,如果我问一个特定的问题,它会给我一个答案,但我想修改它,根据问题是否使用“谁”或“什么”,或者如果一个问题使用“a”、“d”和“b”之类的词,它会给我一个特定的答案。有人知道怎么做吗?你能帮我吗?我完全被卡住了,不知道该怎么办。谢谢你的帮助如何在javascript中操作字符串?,javascript,string,function,Javascript,String,Function,我是javascript新手,需要一些帮助!我想制作一个神奇的8球脚本,为某些问题提供一个具体的答案。到目前为止,如果我问一个特定的问题,它会给我一个答案,但我想修改它,根据问题是否使用“谁”或“什么”,或者如果一个问题使用“a”、“d”和“b”之类的词,它会给我一个特定的答案。有人知道怎么做吗?你能帮我吗?我完全被卡住了,不知道该怎么办。谢谢你的帮助 <script> function eightBall() { var answ
<script>
function eightBall() {
var answer = document.getElementById("answerBox").value;
var images = ['answerYes.png', 'answerNo.png', 'answerAskLater.png', 'answerNotL.png', 'answerMaybe.png'];
if (answer.search(/Will I be rich?/) > -1) {
var askLater = '../images/answerAskLater.png'
document.getElementById('eightTemplate').src = askLater;
} else if (answer.search(/Will I be happy?/) > -1) {
var no = '../images/answerNo.png'
document.getElementById('eightTemplate').src = no;
} else if (answer.search(/Will I live to be 90 years old?/) > -1) {
var yes = '../images/answerYes.png'
document.getElementById('eightTemplate').src = yes;
} else if (answer.search(/Will I be married later in life?/) > -1) {
var notLikely = '../images/answerNotL.png'
document.getElementById('eightTemplate').src = notLikely;
} else if (answer.search(/Can I have a puppy?/) > -1) {
var maybe = '../images/answerMaybe.png'
document.getElementById('eightTemplate').src = maybe;
}
}
</script>
函数eightBall(){
var answer=document.getElementById(“answerBox”).value;
var images=['answerYes.png','answerNo.png','answerAskLater.png','answerNotL.png','answerMaybe.png'];
如果(回答.搜索(/我会富有吗?/)>-1){
var askLater='../images/answerAskLater.png'
document.getElementById('eightTemplate')。src=askLater;
}else if(answer.search(/我会高兴吗?/)>-1){
var no='../images/answerNo.png'
document.getElementById('eightTemplate')。src=no;
}否则如果(回答.搜索(/我能活到90岁吗?/)>-1){
var yes='../images/answerYes.png'
document.getElementById('eightTemplate')。src=yes;
}else if(回答.搜索(/我以后会结婚吗?/)>-1){
var notalue='../images/answerNotL.png'
document.getElementById('eightTemplate')。src=不太可能;
}else if(回答.搜索(/我能养只小狗吗?/)>-1){
var maybe='../images/answerMaybe.png'
document.getElementById('eightTemplate').src=maybe;
}
}
如果您想查看某个问题是否包含某个单词,那么我建议使用javascript的。这些表达可以用来测试或提取某些单词甚至句子结构。例如:
var questionPattern = new RegExp('.+\?$');
//returns true if answer ends with question mark
var isQuestion = questionPattern.test(answer);
实际上,您已经在不知不觉中使用了正则表达式。传递给搜索函数的所有内容都是一个简单的正则表达式。例如:
/.+\?$/
是我在上述代码中声明的同一正则表达式的简写方式。您还可以构造正则表达式,以查看字符串是否以单词what开头:
/^(what)/i
有关正则表达式的详细信息,请选中。希望有帮助 我建议不要使用大量类似的
if/then/else
语句,而是将所有案例放在一个表中,这样您就可以循环使用它了
function eightBall() {
var possibilities = [
{ match: /Will I be rich\?/,
answer: 'AskLater' },
{ match: /Will I be happy\?/,
answer: 'No' },
...
];
var answer = document.getElementById('answerBox').value;
for (var i = 0; i < possibilities.length; i++) {
if (possibilities[i].test(answer)) {
document.getElementById('eightTemplate').src = '../images/answer' + possibilities[i].answer + '.png';
return;
}
}
// Display a default answer here
}
函数eightBall(){
var可能性=[
{匹配:/我会富有吗\?/,
回答:'阿斯克莱特'},
{匹配:/我会快乐吗\?/,
回答:'不'},
...
];
var answer=document.getElementById('answerBox')。值;
对于(变量i=0;i<0.length;i++){
如果(可能性[i].测试(答案)){
document.getElementById('eightTemplate').src='../images/answer'+可能性[i].answer+'.png';
返回;
}
}
//在此处显示默认答案
}
您可以向
可能性表中添加匹配who
、what
、字母或任何其他内容的正则表达式。还有一种更简单的方法来实现这一点:str.toLowerCase().contains(“who”)代码>但对于复杂的检查,您可以选择RegExp。斜杠之间的内容不必匹配整个字符串。下面将显示answerYes.png
如果字符串的任何位置包含小写字母“b”。例如,当字符串为“您喜欢蓝莓吗?”或“abcd”时,它将匹配
为清楚起见,最好将答案
变量重命名为问题
,因为它看起来像是用来保存问题的值
这种方法可能适合您正在做的事情。只要你只想在问题中找到一个单词、字母或短语,它就会起作用。如果您想变得更复杂,并匹配一般模式而不是特定的文本字符串,您可能需要学习正则表达式(RegExp),正如其他人所建议的那样。也许通读a会给您一些想法?您可能正在寻找正则表达式。不会很漂亮的。
else if (answer.search(/b/) > -1) {
var yes = '../images/answerYes.png'
document.getElementById('eightTemplate').src = yes;
}