我的JS小工具

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]); 
  } 
}

 

转载于:https://my.oschina.net/NamiZone/blog/803166

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值