作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不太擅长编程,但我总是尽力而为。在下面的代码中你会看到很多重复。我试图缩短它,但我认为它仍然很丑。
我该如何改进它,以减少重复?
$("#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/
我遇到了一个奇怪的问题。我正在尝试使用 logcollector 从我的安卓手机收集一些日志或 aLogcat .我的 Nexus S 和 moto Defy 一切正常,但当我尝试从 Galaxy S
我有一部分正在工作,但我被告知如果条件 block 很短,我应该使用三元。 module PayerContractsHelper def showPayerContractRate(val)
我是一名优秀的程序员,十分优秀!