Javascript 使用多个模式构建跨度标记的正则表达式
除了它们是什么,我对正则表达式一无所知…:( 我在javascript函数中有以下代码:Javascript 使用多个模式构建跨度标记的正则表达式,javascript,regex,Javascript,Regex,除了它们是什么,我对正则表达式一无所知…:( 我在javascript函数中有以下代码: var foroFormatting = function (text) { var newText = text; var findreps = [ { find: /^([^\-]+) \- /g, rep: '<span class="ui-selectmenu-item-header">$1</span>' }, { find:
var foroFormatting = function (text) {
var newText = text;
var findreps = [
{ find: /^([^\-]+) \- /g, rep: '<span class="ui-selectmenu-item-header">$1</span>' },
{ find: /([^\|><]+) \| /g, rep: '<span class="ui-selectmenu-item-content">$1</span>' },
{ find: /([^\|><\(\)]+) (\()/g, rep: '<span class="ui-selectmenu-item-content">$1</span>$2' },
{ find: /([^\|><\(\)]+)$/g, rep: '<span class="ui-selectmenu-item-content">$1</span>' },
{ find: /(\([^\|><]+\))$/g, rep: '<span class="ui-selectmenu-item-footer">$1</span>' }
];
for (var i in findreps) {
newText = newText.replace(findreps[i].find, findreps[i].rep);
}
return newText;
}
然后把它分成四个跨度元素,对吗
我想将相同的格式应用于与此稍有不同的字符串
John Doe - 78 West Main St Apt 3A | Bloomsburg, PA 12345
如何修改正则表达式
编辑
我尝试使用(第三个示例)我的字符串,它与上一部分中的原始字符串不同您是否考虑过修改输入格式,可能是JSON?这看起来是一种非常脆弱的解析格式
确切的预期输出是什么?使用所需的跨距如果您要删除的只是
(页脚文本)
,那么不使用最后一个替换正则表达式的相同函数也可以工作
var foroFormatting2 = function (text) {
var newText = text;
var findreps = [
{ find: /^([^\-]+) \- /g, rep: '<span class="ui-selectmenu-item-header">$1</span>' },
{ find: /([^\|><]+) \| /g, rep: '<span class="ui-selectmenu-item-content">$1</span>' },
{ find: /([^\|><\(\)]+)$/g, rep: '<span class="ui-selectmenu-item-content">$1</span>' }
];
for (var i in findreps) {
newText = newText.replace(findreps[i].find, findreps[i].rep);
}
return newText;
}
var-foroformating2=函数(文本){
var newText=文本;
变量findreps=[
{find://([^\-]+)\-/g,rep:'$1'},
{find:/([^\|>您不需要更改任何内容,代码在没有括号中的页脚文本的情况下工作得非常完美。好吧,让我给您一些提示,让这变得非常简单。将您的输入格式更改为此
这是一个JSON格式的字符串数组
var arr = ['John Doe', '78 West Main St Apt 3A', 'Bloomsburg, PA 12345', '(footer text)'];
var outputStr = '<span class="ui-selectmenu-item-header">' +
//This line concats the array elements with this text inserted
// between each element
arr.join('</span><span class="ui-selectmenu-item-header">') +
'</span>';
var arr=['John Doe','78 West Main St 3A公寓','Bloomsburg,PA 12345','(页脚文本)];
变量outputStr=''+
//此行包含插入此文本的数组元素
//在每个元素之间
arr.join('')+
'';
你想要的结果是什么?你想要空的
?请查看我在问题末尾的编辑。没问题。记住mykhal的答案。在查看原始函数后,这可能确实是真的。但是,生成的
集可能不是你想要的-即页脚的类出现。
var arr = ['John Doe', '78 West Main St Apt 3A', 'Bloomsburg, PA 12345', '(footer text)'];
var outputStr = '<span class="ui-selectmenu-item-header">' +
//This line concats the array elements with this text inserted
// between each element
arr.join('</span><span class="ui-selectmenu-item-header">') +
'</span>';