هناك ثلاث وظائف في JavaScript يمكنها تشفير السلاسل ، وهي: Escape و Encodeuri و Encodeuri و EncodeUricomponent. وظائف فك التشفير الثلاث المقابلة: unescape ، decodeuri ، و decodeuricomponent.
فيما يلي مقدمة موجزة عن خلافاتهم:
1 الهروب () وظيفة
التعريف والاستخدام
تقوم دالة Escape () بتشفير سلسلة بحيث يمكن قراءة السلسلة على جميع أجهزة الكمبيوتر.
قواعد
الهروب (سلسلة)
وصف المعلمة
السلسلة المطلوبة. السلسلة المراد هربها أو ترميزها.
قيمة الإرجاع
نسخة من السلسلة المشفرة. يتم استبدال بعض هذه الشخصيات بتسلسل الهروب سداسي عشري.
يوضح
لا تقوم هذه الطريقة بتشفير أحرف وأرقام ASCII ، ولا علامات ترقيم ASCII التالية: - _. ! ~ * '(). سيتم استبدال جميع الشخصيات الأخرى بالتسلسلات التي هربت.
2 وظيفة encodeuri ()
التعريف والاستخدام
يمكن أن تقوم وظيفة Encodeuri () بتشفير الأوتار على أنها URIs.
قواعد
Encodeuri (Uristring)
وصف المعلمة
uristring مطلوب. سلسلة تحتوي على URI أو نص آخر ليتم تشفيرها.
قيمة الإرجاع
نسخة من Uristring ، يتم استبدال بعضها بتسلسل هروب سداسي عشري.
يوضح
لا تشفر هذه الطريقة أحرف وأرقام ASCII ، كما أنها لا تشفر علامات علامات الترقيم ASCII: - _. ! ~ * '().
الغرض من هذه الطريقة هو تشفير URI بالكامل ، وبالتالي فإن وظيفة Encodeuri () لن تفلت من علامات الترقيم ASCII التالية مع معنى خاص في URI: ؛/؟:@& =+$ ،#
3 وظيفة EncodeUricomponent ()
التعريف والاستخدام
يمكن أن تقوم وظيفة EncodeUricomponent () بتشفير السلاسل كمكونات URI.
قواعد
المكون EncodeuricOpment (Uristring)
وصف المعلمة
uristring مطلوب. سلسلة تحتوي على مكون URI أو نص آخر ليتم ترميزه.
قيمة الإرجاع
نسخة من Uristring ، يتم استبدال بعضها بتسلسل هروب سداسي عشري.
يوضح
لا تشفر هذه الطريقة أحرف وأرقام ASCII ، كما أنها لا تشفر علامات علامات الترقيم ASCII: - _. ! ~ * '().
يتم استبدال شخصيات أخرى (مثل: ؛/؟:@& =+$ ،
نصائح وتعليقات
نصيحة: لاحظ الفرق بين وظيفة EncodeUricomponent () ودالة Encodeuri (). السابق يفترض أن معلماتها جزء من URI (مثل البروتوكول أو اسم المضيف أو المسار أو سلسلة الاستعلام). لذلك ، ستجري دالة EncodeUricOmponent () علامات علامات الترقيم المستخدمة لفصل الأجزاء الفردية من URI.
4 ملخص:
من خلال تحليل الوظائف الثلاث ، يمكننا أن نعرف أن Escape () يهرب من جميع الأوتار التي تم تمريرها باستثناء أحرف ASCII والأرقام والرموز المحددة. لذلك ، إذا كنت ترغب في تشفير عنوان URL ، فمن الأفضل عدم استخدام هذه الطريقة. يتم استخدام Encodeuri () لتشفير URI بالكامل لأنه لن يتم تشفير وتحويل أي من الأحرف القانونية في URI. يجب أن تكون طريقة EncodeUricomponent هي الأكثر استخدامًا عند ترميز مكون واحد (في إشارة إلى معلمة الطلب). يمكن أن يفلت من الشخصيات الصينية والشخصيات الخاصة في المعلمات دون التأثير على عنوان URL بأكمله.
5 أمثلة:
1 الهروب ()
<script type = "text/javaScript"> document.write (excart ("http://www.w3school.com.cn/") + "<br/>") document.write (excart ("؟! = ()#٪ &")) </script>الإخراج:
http ٪ 3a // www.w3school.com.cn ٪ 3f ٪ 21 ٪ 3d ٪ 28 ٪ 29 ٪ 23 ٪ 25 ٪ 26
2 encodeuri ()
<script type = "text/javaScript"> document.write (encodeuri ("http://www.w3school.com.cn/")+ "<br />") أولاً/")) document.write (encodeuri (" ،/؟:@& =+$#")) </script>الإخراج:
http://www.w3school.com.cn/http://www.w3school.com.cn/My%20first/,/?:@&=+$#
يتم ترميز عنوان URL بأكمله ، ولا يتم ترميز المعرف المحدد لعنوان URL.
3 EncodeUricOpment ()
مثال 1:
<script type = "text/javaScript"> document.write (EncodeUricomponent ("http://www.w3school.com.cn/")) document.write ("<br />")document.write(encodeuricomponent(اف /> ") document.write (EncodeUricomponent (" ،/؟:@& =+$#")) </script>الإخراج:
http ٪ 3a ٪ 2f ٪ 2fwww.w3school.com.cnhttp ٪ 3a ٪ 2f 2fwww.w3school.com.cn ٪ 2fp ٪ 201
مثال 2:
<script language = "javaScript"> document.write ('<a href = "http://passport.baidu.com/؟logout&aid=7&u='+encodeUricomponent (" rel = "external nofollow" http:////baidu.com/bruce42"wivisit </a>قم بتشفير المعلمات في عنوان URL ، لأن المعلمات هي أيضًا عنوان URL ، إن لم يكن مشفرًا ، فسيؤثر على قفزة عنوان URL بأكمله.