c#的正则那块语法不会...
JS的实现如下...
<script type="text/javascript">
var string = '<SPAN title="fdsafdsa " contentEditable=false style="font-size:16px; text-align:center; float:left;POSITION:relative;TOP:4px;" name="fdsafdsa"> </SPAN> '
var span = /<span\b(?:'[^']*'|"[^"]*"|[^"'>])+?(style=(?:'[^']*'|"[^"]*"|[^ "'>]*))(?:'[^']*'|"[^"]*"|[^"'>])*>/ig;
var a = [];
while (span.test(string))
a.push(RegExp.$1 || RegExp.$2 || RegExp.$3 || '');
alert(a.join('\n'));
</script>
JS的实现如下...
<script type="text/javascript">
var string = '<SPAN title="fdsafdsa " contentEditable=false style="font-size:16px; text-align:center; float:left;POSITION:relative;TOP:4px;" name="fdsafdsa"> </SPAN> '
var span = /<span\b(?:'[^']*'|"[^"]*"|[^"'>])+?(style=(?:'[^']*'|"[^"]*"|[^ "'>]*))(?:'[^']*'|"[^"]*"|[^"'>])*>/ig;
var a = [];
while (span.test(string))
a.push(RegExp.$1 || RegExp.$2 || RegExp.$3 || '');
alert(a.join('\n'));
</script>
能不能写个正则 虑掉SPAN的所有样式 只留 它style="POSITION:relative;TOP:4px;"
写俩个版本 一个c#一个JS的var a=/^style\=\"[.]*\"$/g
str.replace(a,"")
<script type="text/javascript">
function $(o)
{
return document.getElementById(o);
}
function styleFilter()
{
$("sp1").removeAttribute("style");
$("sp1").style.position="relative";
$("sp1").style.top="4px";
}
</script>
<body>
<input type="button" onclick="styleFilter()" value="Show Style">
<SPAN id="sp1" title="fdsafdsa " contentEditable=false style="font-size:60px; text-align:center; float:left;POSITION:relative;TOP:4px;" name="fdsafdsa"> asdfasdfasdfasdf</SPAN>
</body>
</html>
var a=/^style\=\"[.]*\"$/g
str.replace(a,"style='POSITION:relative;TOP:4px;'")
应该可以了哈
<script type="text/javascript">
function styleFilter()
{
var spStyle="font-size:60px; text-align:center; float:left;POSITION:relative;TOP:4px;";
alert(spStyle.replace(/.*(?=POSITION:relative;TOP:4px;)/,""));
}
</script>
<body>
<input type="button" onclick="styleFilter()" value="Show Style">
</body>
</html>
所以用了两个式子.
<script type="text/javascript">
var string = '<SPAN title="fdsafdsa " contentEditable=false style="font-size:16px; text-align:center; float:left;POSITION:relative;TOP:4px;" name="fdsafdsa"> </SPAN> '
var span = /(<span\b(?:'[^']*'|"[^"]*"|[^"'>])+?)(?:style=(?:'([^']*)'|"([^"]*)"|([^ "'>]*)))((?:'[^']*'|"[^"]*"|[^"'>])*>)/ig;
var style = /^(?=.*?(\bposition\s*:\s*[a-z]*\b\s*;?)|.)(?=.*?(\btop\s*:\s*\w*\b\s*;?)|.).*$/i;alert( string.replace(span, function (l, $1, $2, $3, $4, $5) {
return $1 + 'style="' + ($2 || $3 || $4).replace(style, function (l, $1, $2) {
return ($1 || '') + ($2 || '');
}) + '"' + $5;
}));
</script>
这个只能说对了1/3这样吧假如POSITION:relative;TOP:4px;链接一起的就没什么问题,假如是分散的呢?比如POSITION:relative;float:left;TOP:4px;所以^
具体的情况就是什么样的样式都可能出现都虑掉 只留style="POSITION:relative;float:left;TOP:4px;" 要不我的程序会出问题
var str='<SPAN title="fdsafdsa " contentEditable=false style="font-size:16px; text-align:center; '
+'float:left;POSITION:relative;TOP:4px;" name="fdsafdsa"> </SPAN>';
alert(str)
var reg=/(top|position):([^;]+)?/gi//第1个括号中定义要保留的属性
str="<span style=\""+str.match(reg).join(";")+"\"></span>"
alert(str)
<SPAN title="fdsafdsa " contentEditable=false
style="font-size:16px;text-align:center;color:#FF0000;
float:left;POSITION:relative;TOP:4px;"
name="fdsafdsa">
abcddd
</SPAN>
<script>
var oSpan=document.getElementsByName("fdsafdsa")[0];
oSpan.style.cssText="position:relative,top:4px;color:green";
</script>
var string = '<SPAN title="fdsafdsa " contentEditable=false style="font-size:16px; text-align:center; float:left;POSITION:relative;TOP:4px;" name="fdsafdsa"> </SPAN> 'var span = /(<span\b(?:'[^']*'|"[^"]*"|[^"'>])+?)(?:style=(?:'(?=[^']*?(\bposition\s*:\s*[a-z]*\b\s*;?)|.)(?=[^']*?(\btop\s*:\s*\w*\b\s*;?)|.)[^']*'|"(?=[^"]*?(\bposition\s*:\s*[a-z]*\b\s*;?)|.)(?=[^"]*?(\btop\s*:\s*\w*\b\s*;?)|.)[^"]*"|(?=[^ "'>]*?(\bposition\s*:\s*[a-z]*\b\s*;?)|.)(?=[^ "'>]*?(\btop\s*:\s*\w*\b\s*;?)|.)[^ "'>]*))((?:'[^']*'|"[^"]*"|[^"'>])*>)/ig;
//'改成一个式子的,这样改成C#的就方便了PS写这么长是相对来说严谨一点否则真是针对此问题,而不是此类问题的话,可以写很短。C#的偶就不改了,还要转义什么的挺麻烦的。。飘走。。
alert(
string.replace(span, '$1style="$2$3$4$5$6$7"$8')
);
</script>
alert(HTMLText.replace(/(style=\".*\")/g,""));
是
HTMLText=" <span style=\"font-size:60px; text-align:center; float:left;POSITION:relative;TOP:4px;asdfasdf\">123 </span>";
alert(HTMLText.replace(/(style=\".*\")/g,"style=\"POSITION:relative;TOP:4px;\""));
document.getElementsByName() 取得非表单对象控件以外的元素。比如下面的例子
ff能找到div1而ie和op则不可以。感觉有些莫名其妙都一样是dom为什么不能一视同仁呢,
还是ff大度一些。忠实支持ff<div name="div1">
<SPAN title="fdsafdsa " contentEditable="false"
style="font-size:16px;text-align:center;color:#FF0000;float:left;POSITION:relative;TOP:4px;"
name="span1" id="span1">
abcddd
</SPAN>
<script>
alert(document.getElementsByName("div1").length);
var oSpan=document.getElementById("span1");
oSpan.style.cssText="position:relative,top:4px;color:green";
</script>
var string = '<SPAN title="fdsafdsa " contentEditable=false style="font-size:16px; text-align:center; float:left;POSITION:relative;TOP:4px;" name="fdsafdsa"> </SPAN> 'var span = /(<span\b(?:'[^']*'|"[^"]*"|[^"'>])+?)(?:style=(?:'(?=[^']*?(\bposition\s*:\s*[a-z]*\b\s*;?)|.)(?=[^']*?(\btop\s*:\s*\w*\b\s*;?)|.)[^']*'|"(?=[^"]*?(\bposition\s*:\s*[a-z]*\b\s*;?)|.)(?=[^"]*?(\btop\s*:\s*\w*\b\s*;?)|.)[^"]*"|(?=[^ "'>]*?(\bposition\s*:\s*[a-z]*\b\s*;?)|.)(?=[^ "'>]*?(\btop\s*:\s*\w*\b\s*;?)|.)[^ "'>]*))((?:'[^']*'|"[^"]*"|[^"'>])*>)/ig;
//'改成一个式子的,这样改成C#的就方便了PS写这么长是相对来说严谨一点否则真是针对此问题,而不是此类问题的话,可以写很短。C#的偶就不改了,还要转义什么的挺麻烦的。。飘走。。
alert(
string.replace(span, '$1style="$2$3$4$5$6$7"$8')
);
</script>
帮我转义一下C#的好么
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Text.RegularExpressions" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
private void Page_Load(object sender, EventArgs e)
{
string str = "<SPAN title=\"fdsafdsa \" contentEditable=false style=\"font-size:16px; text-align:center; float:left;POSITION:relative;TOP:4px;\" name=\"fdsafdsa\"> </SPAN>";
string span = "(<span\\b(?:'[^']*'|\"[^\"]*\"|[^\"'>])+?)(?:style=(?:'(?=[^']*?(\\bposition\\s*:\\s*[a-z]*\\b\\s*;?)|.)(?=[^']*?(\\btop\\s*:\\s*\\w*\\b\\s*;?)|.)[^']*'|\"(?=[^\"]*?(\\bposition\\s*:\\s*[a-z]*\\b\\s*;?)|.)(?=[^\"]*?(\\btop\\s*:\\s*\\w*\\b\\s*;?)|.)[^\"]*\"|(?=[^ \"'>]*?(\\bposition\\s*:\\s*[a-z]*\\b\\s*;?)|.)(?=[^ \"'>]*?(\\btop\\s*:\\s*\\w*\\b\\s*;?)|.)[^ \"'>]*))((?:'[^']*'|\"[^\"]*\"|[^\"'>])*>)";
Regex r = new Regex(span, RegexOptions.IgnoreCase);
Response.Write(
"<script type=\"text/javascript\">alert('" + r.Replace(str, "$1style=\"$2$3$4$5$6$7\"$8") + "');</s" + "cript>"
);
Response.End();
}
</script><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>