【发布时间】:2016-11-21 17:43:02
【问题描述】:
我昨天问了一个问题。如何只删除标签名,以及使用jquery删除包含昨天内容的标签名。
答案是使用正则表达式。
有人可以为我解释一下下面的代码只是正则表达式部分吗?
我已经阅读了一些关于正则表达式的文章,但我认为我并没有完全理解清楚。
如果可能的话,我想将其转换为 c# 代码,但我还不能这样做,因为我不完全理解代码。谢谢
第一个代码
$(function() {
function removeNode(str, nodeName) {
var pattern = '<'+nodeName+'>[\\s\\w]+<\/'+nodeName+'>';
var regex = new RegExp(pattern, 'gi');
return str.replace(regex, '').replace(/^\s*[\r\n]/gm, '');
}
我在第一个代码中不明白的是“gi”是从哪里来的? 和返回
var regex = new RegExp(pattern, 'gi');
return str.replace(regex, '').replace(/^\s*[\r\n]/gm, '');
第二个代码
$(function() {
function removeNodeButRetain(str, nodeName) {
var pattern = '<\/?'+nodeName+'>';
var regex = new RegExp(pattern, 'gi');
return str.replace(regex, '').replace(/^\s*[\r\n]/gm, '');
}
what i dont understand is the
var regex = new RegExp(pattern, 'gi');
return str.replace(regex, '').replace(/^\s*[\r\n]/gm, '');
第三个代码
jQuery(document).ready(function(){
textval = $('textarea').val();
textnewval = textval.replace('Para TextBreak="No"', 'p').replace('/Para', '/p');
if(textnewval.indexOf('Italic') >= 0) //If Italic
{
EmphasisAttr = 'Italic';
textnewval = textnewval.replace('Emphasis Type="'+EmphasisAttr+'"', 'i').replace('/Emphasis', '/i');
}
if(textnewval.indexOf('Bold') >= 0) //If Bold
{
EmphasisAttr = 'Bold';
textnewval = textnewval.replace('Emphasis Type="'+EmphasisAttr+'"', 'b').replace('/Emphasis', '/b');
}
if(textnewval.indexOf('Underline') >= 0) //If underline
{
EmphasisAttr = 'Underline';
textnewval = textnewval.replace('Emphasis Type="'+EmphasisAttr+'"', 'u').replace('/Emphasis', '/u');
}
$('textarea').val(textnewval);
alert($('textarea').val());
});
【问题讨论】:
-
如果您在确定正则表达式匹配的内容时遇到问题,请使用此站点regexr.com,当我需要将正则表达式用于具有引用的内容以及现场操场时,我会一直使用它您可以在哪里测试正则表达式模式
-
先生,您能向我解释一下这部分吗? var regex = new RegExp(pattern, 'gi'); return str.replace(regex, '').replace(/^\s*[\r\n]/gm, '');
-
第一行使用模式和 g 和 i 标志创建一个新的正则表达式,最后一个使用匹配模式的替换
-
也可以使用 jQuery 来完成所有这些操作而无需正则表达式
-
或者因为您想在 C# 中执行此操作,请使用
System.Xml命名空间来操作 xml
标签: javascript jquery