gpt4 book ai didi

javascript - 代码很短,有很多重复

转载 作者:行者123 更新时间:2023-11-28 12:32:47 26 4
gpt4 key购买 nike

我不太擅长编程,但我总是尽力而为。在下面的代码中你会看到很多重复。我试图缩短它,但我认为它仍然很丑。

我该如何改进它,以减少重复?

   $("#searchterm").keyup(function(e){
var q = $("#searchterm").val();

if(e.keyCode==13){
if(q.substr(0,2) == "A;"){
$("#imagedocu_art").val("A");
$("#imagedocu_text").val(q.substr(2))
$("#new_imagedocu").submit();
}
if(q.substr(0,2) == "B;"){
$("#imagedocu_art").val("B");
$("#imagedocu_text").val(q.substr(2))
$("#new_imagedocu").submit();
}
if(q.substr(0,2) == "T;"){
$("#imagedocu_art").val("T");
$("#imagedocu_text").val(q.substr(2))
$("#new_imagedocu").submit();
}
if(q.substr(0,2) == "D;"){
$("#imagedocu_art").val("D");
$("#imagedocu_text").val(q.substr(2))
$("#new_imagedocu").submit();
}
if(q.substr(0,3) == "DD;"){
$("#imagedocu_art").val("DD");
$("#imagedocu_text").val(q.substr(3))
$("#new_imagedocu").submit();
}
}


if((q.substr(0,2) == "D;") || (q.substr(0,3) == "DD;")){
if(q.substr(0,2) == "D;"){
var text = q.substr(2);
}else{
var text = q.substr(3);
}

最佳答案

正则表达式可以取代所有的 if 检查。

if (e.keyCode==13) {
var match = q.match(/^([ABTD]|DD);(.*)/);
if (match) {
$("#imagedocu_art").val(match[1]);
$("#imagedocu_text").val(match[2]);
$("#new_imagedocu").submit();
}
}

reg exp的基本解释

/       Start of reg exp
^ Start of string
( Start of capture group
[ABTD] Match any character included inside the []
| OR
DD Match the String "DD"
) End of capture group
; Match a semicolon
(.*) Match all the remaining
/ End of Reg Exp

比赛将发生

null or ["A;FOO", "A", "FOO"] or ["DD;FOO", "D", "FOO"]

关于javascript - 代码很短,有很多重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20507231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com