JavaScript字符串替换为复杂的正则表达式
我正试图找出需要什么正则表达式来更改这个字符串JavaScript字符串替换为复杂的正则表达式,javascript,regex,string,Javascript,Regex,String,我正试图找出需要什么正则表达式来更改这个字符串 html = '<img style="width: 311px; height: 376px;" alt="test" src="/img/1268749322.jpg" />'; 有人能帮我吗 谢谢秋葵是对的,你应该使用DOM 但是对于你的正则表达式:\?(问号)应该是什么意思?我将在该位置插入\s*(任意数量的空格) 秋葵是对的,你应该使用DOM 但是对于你的正则表达式:\?(问号)应该是什么意思?我将在该位置插入\s*(任意数
html = '<img style="width: 311px; height: 376px;" alt="test" src="/img/1268749322.jpg" />';
有人能帮我吗
谢谢秋葵是对的,你应该使用DOM
但是对于你的正则表达式:
\?
(问号)应该是什么意思?我将在该位置插入\s*
(任意数量的空格) 秋葵是对的,你应该使用DOM
但是对于你的正则表达式:\?
(问号)应该是什么意思?我将在该位置插入\s*
(任意数量的空格)
:
(\s*
)后面的空格。你不想要吗?因为它将丢失>1个空间或一个选项卡:
(\s*
)后面的空格。你不想要吗?因为它将丢失>1个空间或一个选项卡如果您愿意,我可以更详细地说明,让我知道这是如何工作的:
html = html.replace(/style=".*?width:\s?(\d+).*?height:\s?(\d+).*?"/g, "width=\"$1\" height=\"$2\"");
编辑:转义qq如果您愿意,我可以让它更详细,让我知道它是如何工作的:
html = html.replace(/style=".*?width:\s?(\d+).*?height:\s?(\d+).*?"/g, "width=\"$1\" height=\"$2\"");
编辑:转义qq是的,通常我会使用DOM,但在这种特殊情况下,我需要解析WYSIWYG编辑器中过滤样式属性的HTML代码。一般来说,这是好的,但是对于图片,我想用这个html.replace-Hack保持设置的大小 答案是:
html = html.replace(/ style=".*?width:\s?(\d+).*?height:\s?(\d+).*?"/g, " width=\"$1\" height=\"$2\"");
感谢您的帮助:-)是的,通常我会用DOM来处理,但在这种特殊情况下,我需要解析所见即所得编辑器中过滤样式属性的HTML代码。一般来说,这是好的,但是对于图片,我想用这个html.replace-Hack保持设置的大小 答案是:
html = html.replace(/ style=".*?width:\s?(\d+).*?height:\s?(\d+).*?"/g, " width=\"$1\" height=\"$2\"");
感谢您的帮助:-)html='';
var d=document.createElement(“div”);
d、 innerHTML=html;
var img=d.firstChild;
var-width=parseInt(img.style.width,10);
var height=parseInt(img.style.height,10);
img.setAttribute(“宽度”,宽度);
img.setAttribute(“高度”,高度);
移除属性(“样式”);
警报(d.html);
当然,如果不从字符串开始,事情会变得稍微容易一些;-) html=”;
var d=document.createElement(“div”);
d、 innerHTML=html;
var img=d.firstChild;
var-width=parseInt(img.style.width,10);
var height=parseInt(img.style.height,10);
img.setAttribute(“宽度”,宽度);
img.setAttribute(“高度”,高度);
移除属性(“样式”);
警报(d.html);
当然,如果不从字符串开始,事情会变得稍微容易一些;-) 如果可能的话,试着在DOM上进行。正则表达式不适合处理HTML。是否尝试操作特定的标记?或者您正在尝试操作所有相同类型的标记吗?如果可能的话,尝试在DOM上进行操作。正则表达式不适合处理HTML。是否尝试操作特定的标记?或者你想操纵所有相同类型的标签?就是这样,谢谢!html=html.replace(/style=“.*”宽度:\s(\d+).*?高度:\s(\d+).*?/g,“宽度=\”$1\“高度=\”$2\”);谢谢Juri,glade你喜欢它!就是这个,谢谢!html=html.replace(/style=“.*”宽度:\s(\d+).*?高度:\s(\d+).*?/g,“宽度=\”$1\“高度=\”$2\”);谢谢Juri,glade你喜欢它@Juri-万一不明显,链接是指向StackOverflow两位创始人之一的博客。@Juri-万一不明显,链接是指向StackOverflow两位创始人之一的博客。这是所见即所得编辑器提供的HTML代码所见即所得编辑器提供的HTML代码
html = '<img style="width: 311px; height: 376px;" alt="test" src="/img/1268749322.jpg" />';
var d = document.createElement("div");
d.innerHTML = html;
var img = d.firstChild;
var width = parseInt(img.style.width, 10);
var height = parseInt(img.style.height, 10);
img.setAttribute("width", width);
img.setAttribute("height", height);
img.removeAttribute("style");
alert(d.innerHTML);