文档章节

我的JS小工具

吃兔纸不吐毛
 吃兔纸不吐毛
发布于 2016/12/09 16:09
字数 768
阅读 8
收藏 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]); 
  } 
}

 

© 著作权归作者所有

共有 人打赏支持
上一篇: jQuery-EasyUI
下一篇: MyBatis
吃兔纸不吐毛
粉丝 2
博文 61
码字总数 30280
作品 0
杭州
私信 提问
我为什么不从NodeJS切换到Go

2014年3月26日 我最近研究并玩了一下Go语言,并且我想简短地谈一下为什么我不准备从Node切换到GO。(并且我建议你也不要这么干) 首先,人们在讨论Node.js时会有很多的抱怨: 回调地狱 Promis...

Kris_zcl
2014/03/31
7.9K
6
我是如何利用一个周末时间成为前端工程师的

2周前,我将 TravisLight 开源了,这是一个建立监控的工具,也是一个用于 Travis-CI 的构件监控工具。出于兴趣,我用了一个周末的时间做了这个项目,而且我是以一个真正的前端开发者的角色来...

oschina
2012/12/25
31.2K
36
利用 CoffeeScript 和 Node 进行函数式 JavaScript 编程

CoffeeScript 在填补 JavaScript 不完善之处方面声名卓著,但它还有其他一些值得探索的优势。在本文中,Andrew Glover 将向您展示 CoffeeScript 较为整洁的语法如何使您能够更轻松地利用 Ja...

IBMdW
2012/03/19
1K
2
JavaScript语言基础-环境搭建

我们要想编写和运行JavaScript脚本,则需要:JavaScript编辑工具和JavaScript运行测试环境。下面我们分别介绍一下。 JavaScript编辑工具 JavaScript编辑工具最简单的可以使用一些文本编辑工具...

智捷课堂
2015/03/12
0
0
关于JS的一点想法

刚学JS不久,之前系统的学习了JAVA。JS给我的感觉就是,不是很规范,变量不定义就可以用,也没有很多可以用的类,JS不可以说是个OOP的语言,只是个像以前的C一样的过程学习,不过,要想学了J...

杨松坤
2012/05/17
467
12

没有更多内容

加载失败,请刷新页面

加载更多

Ubuntu18.04 安装MySQL

1.安装MySQL sudo apt-get install mysql-server 2.配置MySQL sudo mysql_secure_installation 3.设置MySQL非root用户 设置原因:配置过程为系统root权限,在构建MySQL连接时出现错误:ERROR...

AI_SKI
今天
2
0
3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)

3.6-3.7 rc脚本(start、stop和status方法) #!/usr/bin/env python# -*- coding: utf-8 -*-# [@Version](https://my.oschina.net/u/931210) : python 2.7# [@Time](https://my.oschina.......

隐匿的蚂蚁
今天
3
0
Cnn学习相关博客

CNN卷积神经网络原理讲解+图片识别应用(附源码) 笨方法学习CNN图像识别系列 深度学习图像识别项目(中):Keras和卷积神经网络(CNN) 卷积神经网络模型部署到移动设备 使用CNN神经网络进行...

-九天-
昨天
4
0
flutter 底部输入框 聊天输入框 Flexible

想在页面底部放个输入框,结果键盘一直遮住了,原来是布局问题 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("评论"), ...

大灰狼wow
昨天
4
0
Kernel I2C子系统

备注:所有图片来源于网络 1,I2C协议: 物理拓扑: I2C总线由两根信号线组成,一条是时钟信号线SCL,一条是数据信号线SDA。一条I2C总线可以接多个设备,每个设备都接入I2C总线的SCL和SDA。I...

yepanl
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部