[英]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 >
,以提高可讀性。
這是我對它的理解:
post
。 message
value
屬性。 <
並放入(
在消息中。 x
分配給原始y
在第一行之后,y引用了名稱為“ post”的文檔格式。
在第二個之后,x的字段內容為name =“ message”。
第三行使用正則表達式用左括號替換每個左尖括號,第二行對以反斜杠開頭的左尖括號也是如此。 似乎是多余的,因為<在正則表達式中沒有特殊含義; 在這種情況下,“ i”修飾符也沒有用。
最后一行將修改后的消息分配回表單。
這段代碼應該可以防止將HTML元素注入“消息”字段,但是這樣做的方式很粗糙。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.