文档章节

我的JS小工具

吃兔纸不吐毛
 吃兔纸不吐毛
发布于 2016/12/09 16:09
字数 768
阅读 8
收藏 0
点赞 0
评论 0

1. 大小写转换及Java驼峰命名法和数据库字段转换


 这是平时Java初期开发经常用到的,建实体类的时候比较方便,简陋的小工具,相同的按钮不要点2次,有bug,也没有考虑性能什么的,就是方便用,谢谢,以下是JS源码:

<!DOCTYPE html>
<html>
	<head>
		<title>大小写转换</title>
		<script src="jquery-3.1.1.min.js"></script>
		<style>
			.need-convert {
				width: 554px;
				height: 200px;
			}
		</style>
	</head>
	<body>
		<textarea id="need-convert" class="need-convert"></textarea><br>
		<input type="button" value="小写→大写" onclick="toUpper()">
		<input type="button" value="大写→小写" onclick="toLower()">
		<input type="button" value="Java驼峰命名法→数据库字段" onclick="toColumn()">
		<input type="button" value="数据库字段→Java驼峰命名法" onclick="toCamel()">
		<script>
			// 转换成大写
			function toUpper () {
				var resultStr = $("#need-convert").val().toUpperCase();
				$("#need-convert").val(resultStr);
			}
		
			// 转换成小写
			function toLower () {
				var resultStr = $("#need-convert").val().toLowerCase();
				$("#need-convert").val(resultStr);
			}
		
			// 转换成下划线命名法
			// 16.11.16更新:
			// 标注 1:用"myArray[i].search(myReg) != -1"替换"myReg.test(myArray[i]",因为会出现迷之错误,比如aBC转换成a_BC(错误),而不是a_B_C(正确)
			function toColumn () {
				var resultStr = $("#need-convert").val();
				var myReg = /[A-Z]/g;
				var myArray = [];
				for (var i = 0; i < resultStr.length; i++) {
					myArray.push(resultStr.charAt(i));
					if (i != 0) {
						if (myArray[i].search(myReg) != -1) {// 标注 1
							myArray[i] = myArray[i].replace(myArray[i], "_" + myArray[i].toUpperCase());
						}
					}
				}
				$("#need-convert").val(myArray.join(""));
			}
			
			// 转换成驼峰命名法
			function toCamel () {
				var resultStr = $("#need-convert").val().toLowerCase();
				var myReg = /[_]/g;
				var myArray = [];
				for (var i = 0; i < resultStr.length; i++) {
					myArray.push(resultStr.charAt(i));
					if (i != 0) {
						if (myReg.test(myArray[i - 1])) {
							myArray[i - 1] = "";
							myArray[i] = myArray[i].replace(myArray[i], myArray[i].toUpperCase());
						}
					}
				}
				$("#need-convert").val(myArray.join(""));
			}
		</script>
	</body>
</html>

 

2. HTML转义字符处理

把转义字符转换成普通字符,也可以替换内容互相转。

参考链接:JS转换HTML转义符

//转意符换成普通字符
function html2Normal (str) {
	// 对应的转义字符
	var arrEntities = {'quot': '"', 'amp': '&', 'lt': '<', 'gt': '>', 'nbsp': ' ', 'iexcl': '?', '#39':"'"};
	// 待匹配的字符正则表达式
	var htmlReg = /&(quot|amp|lt|gt|nbsp|iexcl|#39);/ig;
	return str.replace(htmlReg, function (all, t) {return arrEntities[t];});
}

 

3. 修改cookie

// 添加Cookie
function setCookie (name, value) {
	var today = new Date();
	var expires = new Date();
	expires.setTime(today.getTime() + 1000*60*60*24*365);// 设置过期时间  单位:毫秒
	document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString();
}
// 得到Cookie
function getCookie (name) {
	if (document.cookie.length > 0) {// 判断cookie是否为空
		var startNumber = document.cookie.indexOf(name + "=");
		if (startNumber != -1) {
			startNumber = startNumber + name.length + 1;
			var endNumber = document.cookie.indexOf(";", startNumber);
			if (endNumber == -1) {
				endNumber = document.cookie.length;
			}
			return unescape(document.cookie.substring(startNumber, endNumber));
		}
	}
	return "";
}
// 删除Cookie
function delCookie (name) {
	var exp = new Date();
	exp.setTime(exp.getTime() - 1);
	var cval=getCookie(name);
	if (cval!=null) {
		document.cookie= name + "="+cval+";expires="+exp.toGMTString();
	}
}

 

4. JS获取项目名称

//得到项目名称
function getContextPath(){
	var pathName = window.location.pathname;// '/SFA/xx.jsp'
	var contextPathReg = /(^(http[s]?:\/\/[^\/]*\/)|(^\/))([^\/]+)\/.*$/ig;
	var contextPath = pathName.replace(contextPathReg,"$4");
	
	return contextPath;// 'SFA'
}

 

5. JS将JSON字符串转换为对象

// 参考地址:http://www.jb51.net/article/32795.htm
// 多重嵌套
var t = "{'firstName': 'cyra', 'lastName': 'richardson', 
  'address': { 'streetAddress': '1 Microsoft way', 
  'city': 'Redmond', 'state': 'WA', 'postalCode': 98052 },
  'phoneNumbers': [ '425-777-7777','206-777-7777' ] }"; 
var jsonobj = eval('('+t+')'); 
alert(jsonobj.firstName); 
alert(jsonobj.lastName);

// 数组嵌套对象
var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},
{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] "; 
var myobj=eval(t2);

// 数组嵌套数组
var t3="[['<a href=# onclick=openLink(14113295100,
  社旗县国税局桥头税务所,14113295100,
  d6d223892dc94f5bb501d4408a68333d,
  swjg_dm);>14113295100</a>','社旗县国税局桥头税务所',
  '社旗县城郊乡长江路西段']]";
var obj = eval(t3); 
for(var i = 0; i<obj.length; i++){ 
  for(var j = 0; j<obj[i].length; j++){ 
    alert(obj[i][j]); 
  } 
}

 

© 著作权归作者所有

共有 人打赏支持
吃兔纸不吐毛
粉丝 1
博文 54
码字总数 28636
作品 0
杭州
缅甸银河国际开户13170533331

解决这个问题涉及到两个方面的问题: 配置问题 、引入静态文件问题 1、配置问题 web.xml配置的DispatchServlet如下: [html] view plain copy springmvc org.springframework.web.servlet.D...

银河国际 ⋅ 05/26 ⋅ 0

chrome浏览器中 F12 功能的简单介绍

由于F12是前端开发人员的利器,所以我自己也在不断摸索中,查看一些博客和资料后,自己总结了一下来帮助自己理解和记忆,也希望能帮到有需要的小伙伴,嘿嘿! 首先介绍Chrome开发者工具中,调...

m0_37724356 ⋅ 04/10 ⋅ 0

给Web前端初学者的一些建议和学习方法路线

Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师。主要进行网站开发,优化,完善的工作。网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行...

web前端小辰 ⋅ 05/24 ⋅ 0

JSON,异步加载(学习笔记)

JSON是一种传输数据的格式(以对象为样板,本质上就是对象,但用途有区别,对象就是本地用的,json是用来数据传输的,前端与后端的数据通信) JSON是静态类(不需要构造),类似于Math,内部...

Mrs_CoCo ⋅ 04/23 ⋅ 0

code-rhythm:写了个vscode扩展,让代码更有快感

项目地址 Github - onvno/code-rhythm 原因 写代码本身是件快乐的事情,但开发中总有各种烦恼。 有时候一个很简单的方法,因为不确定传参的形式,不确定返回形式,不确定具体用法,就得翻墙,...

onvno_ ⋅ 06/07 ⋅ 0

Webpack 创始人:希望能有更多时间写更多代码

Tobias Koppers 是一位自由软件开发者,家住德国纽伦堡。他因写出 Webpack 这个已有数百万开发者使用的开源软件而名噪一时。他目前专注于 JavaScript 和开源项目。以下是我对他个人的专访,希...

王练 ⋅ 05/06 ⋅ 0

Tobias Koppers:我当初为什么写webpack

编者按:本文转载自众成翻译, 由为之漫笔翻译 Tobias Koppers是一位自由软件开发者,家住德国纽伦堡。他因写出webpack这个已有数百万开发者使用的开源软件而名噪一时。他目前专注于JavaScr...

奇舞周刊 ⋅ 04/23 ⋅ 0

以变制变——前端动态化代码保护方案探索

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文分享了腾讯防水墙团队关于机器对抗的动态化思路,希望能抛砖引玉,给现在正在做人机对抗的团队一些启发,帮助更多中小型公司...

腾讯云加社区 ⋅ 06/07 ⋅ 0

改进 JavaScript 和 Rust 的互操作性:深入认识 wasm-bindgen 组件

最近我们已经见识了WebAssembly如何快速编译、加速JS库以及生成更小的二进制格式。我们甚至为Rust和JavaScript社区以及其他Web编程语言之间的更好的互操作性制定了高级规划。正如前面一篇文章...

oschina ⋅ 04/08 ⋅ 0

WEB前端学习JS灵魂之问:JS为什么是单线程的?

Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师。主要进行网站开发,优化,完善的工作。网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行...

web前端小辰 ⋅ 05/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 40分钟前 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 59分钟前 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部