js解码类

简介:
package net.hlj.util;

public class EscapeUnescape {

	public static String escape(String src) {

		int i;

		char j;

		StringBuffer tmp = new StringBuffer();

		tmp.ensureCapacity(src.length() * 6);

		for (i = 0; i < src.length(); i++) {

			j = src.charAt(i);

			if (Character.isDigit(j) || Character.isLowerCase(j)

			|| Character.isUpperCase(j))

				tmp.append(j);

			else if (j < 256) {

				tmp.append("%");

				if (j < 16)

					tmp.append("0");

				tmp.append(Integer.toString(j, 16));

			} else {

				tmp.append("%u");

				tmp.append(Integer.toString(j, 16));

			}

		}

		return tmp.toString();

	}

	public static String unescape(String src) {

		StringBuffer tmp = new StringBuffer();

		tmp.ensureCapacity(src.length());

		int lastPos = 0, pos = 0;

		char ch;

		while (lastPos < src.length()) {

			pos = src.indexOf("%", lastPos);

			if (pos == lastPos) {

				if (src.charAt(pos + 1) == 'u') {

					ch = (char) Integer.parseInt(src

					.substring(pos + 2, pos + 6), 16);

					tmp.append(ch);

					lastPos = pos + 6;

				} else {

					ch = (char) Integer.parseInt(src

					.substring(pos + 1, pos + 3), 16);

					tmp.append(ch);

					lastPos = pos + 3;

				}

			} else {

				if (pos == -1) {

					tmp.append(src.substring(lastPos));

					lastPos = src.length();

				} else {

					tmp.append(src.substring(lastPos, pos));

					lastPos = pos;

				}

			}

		}

		return tmp.toString();

	}

}

目录
相关文章
|
2月前
|
JavaScript 前端开发
js开发:请解释原型继承和类继承的区别。
JavaScript中的原型继承和类继承用于共享对象属性和方法。原型继承通过原型链实现共享,节省内存,但不支持私有属性。
29 0
|
2月前
|
JavaScript
js开发:请解释什么是ES6的类(class),并说明它与传统构造函数的区别。
ES6的类提供了一种更简洁的面向对象编程方式,对比传统的构造函数,具有更好的可读性和可维护性。类使用`class`定义,`constructor`定义构造方法,`extends`实现继承,并可直接定义静态方法。示例展示了如何创建`Person`类、`Student`子类以及它们的方法调用。
36 2
|
2月前
|
JavaScript 前端开发
js开发:请解释原型继承和类继承的区别。
JavaScript中的原型继承和类继承用于共享对象属性和方法。原型继承利用原型链查找属性,节省内存但不支持私有成员。类继承通过ES6的class和extends实现,支持私有成员但占用更多内存。两者各有优势,适用于不同场景。
30 0
|
1月前
|
设计模式 JavaScript 前端开发
在JavaScript中,继承是一个重要的概念,它允许我们基于现有的类(或构造函数)创建新的类
【6月更文挑战第15天】JavaScript继承促进代码复用与扩展,创建类层次结构,但过深的继承链导致复杂性增加,紧密耦合增加维护成本,单继承限制灵活性,方法覆盖可能隐藏父类功能,且可能影响性能。设计时需谨慎权衡并考虑使用组合等替代方案。
37 7
|
1月前
|
JavaScript 前端开发
记录Javascript数组类练习
记录Javascript数组类练习
14 1
|
1月前
|
JavaScript 前端开发 Java
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
27 2
|
1月前
|
存储 JavaScript 前端开发
【JavaScript】JavaScript 中的 Class 类:全面解析
【JavaScript】JavaScript 中的 Class 类:全面解析
31 1
|
21天前
|
JavaScript 索引
js 类数组 转 数组
js 类数组 转 数组
19 0
|
25天前
|
JavaScript 前端开发
JavaScript编码之路【ES6新特性之Class类】(二)
JavaScript编码之路【ES6新特性之Class类】(二)
11 0
|
25天前
|
JavaScript 前端开发
JavaScript编码之路【ES6新特性之Class类】(一)
JavaScript编码之路【ES6新特性之Class类】(一)
15 0