簡體   English   中英

需要對此javascript代碼的解釋

[英]Need an explanation for this javascript code

我上周開始學習JavaScript,昨天看到了這段代碼,並對它進行了一些研究,但現在我不知道它的作用:

var y=document.forms['post'];
var x=y.message.value;
x=x.replace(/</gi,'(').replace(/\</gi,'(');
y.message.value=x;

此代碼以名為post的形式從名為message的元素中獲取值。 然后,將所有<替換為(然后將該值放回message

它是從表單元素文本消毒HTML(一個input ,從外觀上來看),更換所有<( ...

...然后再做一次; 這可能意味着要用)替換all > ,以提高可讀性。

這是我對它的理解:

  1. 變量y保存您的表單,其名稱為= post
  2. 變量x保留標簽message value屬性。
  3. 替換<並放入(在消息中。
  4. 將新的消息標簽x分配給原始y

在第一行之后,y引用了名稱為“ post”的文檔格式。

在第二個之后,x的字段內容為name =“ message”。

第三行使用正則表達式用左括號替換每個左尖括號,第二行對以反斜杠開頭的左尖括號也是如此。 似乎是多余的,因為<在正則表達式中沒有特殊含義; 在這種情況下,“ i”修飾符也沒有用。

最后一行將修改后的消息分配回表單。

這段代碼應該可以防止將HTML元素注入“消息”字段,但是這樣做的方式很粗糙。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM