2014-03-07 143 views
-2

我正在阅读W3School的一些教程。此功能如何工作

我右键点击并查看网页源代码,发现在源代码中此功能:

function submitTryit() { 
    var t = document.getElementById("textareaCode").value; 
    t = t.replace(/=/gi, "w3equalsign"); 
    var pos = t.search(/script/i) 
    while (pos > 0) { 
     t = t.substring(0, pos) + "w3" + t.substr(pos,3) 
      + "w3" + t.substr(pos+3,3) + "tag" + t.substr(pos+6); 
     pos = t.search(/script/i); 
    } 

    document.getElementById("code").value = t; 
    document.getElementById("tryitform").action = "tryit_view.asp?x=" + Math.random(); 
    validateForm(); 
    document.getElementById("tryitform").submit(); 
} 

function validateForm() { 
    var code = document.getElementById("code").value; 
    if (code.length > 5000) { 
     document.getElementById("code").value = "<h1>Error</h1>"; 
    } 
} 

这是什么呢?

var pos = t.search(/script/i) 

这是什么?

t = t.substring(0, pos) + "w3" + t.substr(pos,3) 
    + "w3" + t.substr(pos+3,3) + "tag" + t.substr(pos+6); 
+1

我建议你搜索并查看官方文档*已经在网上*:[String.prototype.search()](https://developer.mozilla。org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search)和[String.prototype.substring()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring) –

+1

你是在学习W3School的帮助下学习javascript,还是试图实现与W3School相同的功能?如果你只是在学习js,那么就没有必要查看w3school网站的源代码。 – rhgb

回答

0
pos=t.search(/script/i) 

看来t是一个文本区域的价值,也就是说,任何用户输入在所述文本区域。

t.search(/script/) 

这使用正则表达式在用户输入的内容中搜索字符“脚本”。

t.search(/script/i) 

i标志使得它不区分大小写(这样会匹配“脚本”,“脚本”等)。

var pos=t.search(/script/i); 

该分配第一匹配到可变pos

alert("StackOverflow Rocks!".search(/rock/i)); 

位置将提醒“14”,由于这是第一个匹配的位置。

如果没有发现匹配,那么search返回-1

1

语法

/script/i 

创建,在不区分大小写的方式匹配字符“脚本”一regular expression(即,它会匹配"script","Script","SCRIPT"等)。这条线:

var pos=t.search(/script/i) 

pos到第一次出现的在字符t位置“脚本”不区分大小写。 (这将设置pos为-1,如果t不包含匹配的字符序列。)

你问的其他线路:

t=t.substring(0,pos) + "w3" + t.substr(pos,3) + "w3" + t.substr(pos+3,3) + "tag" + t.substr(pos+6); 

替换被发现与人物“的“脚本”序列w3scrw3ipttag“(同时在原始字符串中保留”脚本“的情况)。

请不要问我为什么他们这样做。另外,请不要尝试通过阅读网站源代码来学习JavaScript。 (至少在你掌握了基本知识之后,即使这样......很多情况都非常可怕)。相反,花点时间阅读一些可用的非常好的tutorial information