请教如何将以下字符串
LEFT: 316px; WIDTH:40px; POSITION: absolute; TOP: 69px; HEIGHT:40px;变为
{"WIDTH":"40px","HEIGHT":"40px"}正则式不怎么会写,请大家帮忙看看。用split(",")分割后不知道怎么操作。
LEFT: 316px; WIDTH:40px; POSITION: absolute; TOP: 69px; HEIGHT:40px;变为
{"WIDTH":"40px","HEIGHT":"40px"}正则式不怎么会写,请大家帮忙看看。用split(",")分割后不知道怎么操作。
解决方案 »
- JavaScript 图片轮播 出现第一张和第二张中间错乱显示在一起 求高手
- 关于pageX的兼容性与效率获取问题
- 这段代码在chrome不能执行,别的浏览器都可以
- 刚开始看JS ,一个JSP文件,点击按钮onclick后,JS代码没有执行! 帮忙看看
- JS confirm对话框的问题
- 高手帮忙:我的网页和数据库被挂木马了,<script src=http://www.adupd.mobi/b.js></script>这是什么
- jsp里的参数传递给js,js修改过后怎么传回给jsp
- table-layout: fixed与宽度问题.....
- 怎们让下拉类表失效?
- 怎样设置checkbox的状态
- javascript 如何获取数组长度?
- checkbox问题
var str="LEFT: 316px; WIDTH:40px; POSITION: absolute; TOP: 69px; HEIGHT:40px;"
str=str.match(/(width|height):[^;]+/gi);
str="{"+str.join(",")+"}";
alert(str);
</script>
var prop = {};
var names = ["WIDTH", "HEIGHT"];
for (var i = 0; i < names.length; i++) {
var match = str.match(new RegExp("\\b" + names[i] + "\\s*:\\s*(\\d+px)\\s*;?", "i"));
if (match) prop[names[i]] = match[1];
}document.open();
for(var p in prop) {
document.write(p);
document.write("=");
document.write(prop[p]);
document.write("<br/>");
}
document.close();
<div id="div1"></div>
<SCRIPT LANGUAGE="JavaScript">
<!--
var str = "LEFT: 316px; WIDTH:40px; POSITION: absolute; TOP: 69px; HEIGHT:40px;";
if (str.substring(str.length-1)==";") str = str.substring(0,str.length-1);
str = "\"" + str + "\"";
var reg = /\s/g
str = str.replace(reg,"");
reg = /;/g
str = str.replace(reg,"\",\"");
reg = /:/g
str = str.replace(reg,"\":\"");
div1.innerHTML = str;
//-->
</SCRIPT>
absolute; TOP: 69px; LEFT: 316px;
style里并不单纯的只有height 和 width 。
前两位朋友的都是采用匹配 height 和width ,
zyzy15 好像只是变成我需要的那种格式而没有去掉style中的一些元素。谢谢,请各位再帮忙修改下~~不甚感激。呵呵
的去掉,余下的就可以了。哈哈 个人想法。
<SCRIPT LANGUAGE="JavaScript">
<!--
var str = "LEFT: 316px; WIDTH:40px; POSITION: absolute; top: 69px; HEIGHT:40px;";
var reg = /\s/g
str = str.replace(reg,"");
reg = /(POSITION|TOP|LEFT).*?;/ig
str = str.replace(reg,"");
if (str.substring(str.length-1)==";") str = str.substring(0,str.length-1);
str = "{\"" + str + "\"}";
reg = /;/g
str = str.replace(reg,"\",\"");
reg = /:/g
str = str.replace(reg,"\":\"");
div1.innerHTML = str;
//-->
</SCRIPT>
直接运行是正确的,可是在IE8 跟firefox下有一个BUG,IE下LEFT 是去不掉的,firefox可以的。以下是我的代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>样式获取!</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<title>jQuery</title>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<SCRIPT LANGUAGE="JavaScript">
<!--
$(document).ready(function(){
var str = $("#hello").attr("style");
alert(str);
var reg = /\s/g
str = str.replace(reg,"");
reg = /(left|POSITION|TOP|LEFT).*?;/ig
str = str.replace(reg,"");
if (str.substring(str.length-1)==";") str = str.substring(0,str.length-1);
str = "{\"" + str + "\"}";
reg = /;/g
str = str.replace(reg,"\",\"");
reg = /:/g
str = str.replace(reg,"\":\"");
alert(str);
})
</SCRIPT>
</HEAD>
<body>
<div id="hello" style="WIDTH:40px; POSITION: absolute; top: 69px; HEIGHT:40px;LEFT: 316px;"></div>
</body>
</HTML>请大家再帮忙看看~~~ 谢谢
<SCRIPT LANGUAGE="JavaScript">
<!--
var str = document.getElementById("hello").getAttribute("style");
//ie取到的style是个object,ff取到的是string
if (typeof(str)=="object")
{
//ie的情况,取div的outerHTML,再进行匹配
str = document.getElementById("hello").getAttribute("outerHTML");
str = str.match(/style=\".*?\"/);
str = str.toString().substring(6);
}
alert(str);
var reg = /\s/g
str = str.replace(reg,"");
//left去不掉是因为取到的style的最后一个";"被不知啥玩意儿给吃了
//所以改成:有";"到";",没有则到末尾
reg = /(left|POSITION|TOP|LEFT).*?(;|$)/ig
str = str.replace(reg,"");
if (str.substring(str.length-1)==";") str = str.substring(0,str.length-1);
str = "{" + str + "}";
reg = /;/g
str = str.replace(reg,"\",\"");
reg = /:/g
str = str.replace(reg,"\":\"");
alert(str);
</SCRIPT>