除了它们是什么之外,我对正则表达式一无所知......:(
我在 JavaScript 函数中有这段代码:
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 (footer text)
并将其分成四个跨度元素,对吗?
我想对与此稍有不同的字符串应用相同的格式
John Doe - 78 West Main St Apt 3A | Bloomsburg, PA 12345
我该如何修改正则表达式?
编辑
我正在尝试使用 this plugin (第三个例子)我的字符串与最后一部分中的原始字符串不同
最佳答案
如果您删除的只是(页脚文本)
,那么无需最后一个替换正则表达式的相同函数也将起作用。
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;
}
我删除了捕获并格式化(页脚文本)
的部分。我建议阅读regular expressions 。它们是一个很棒的工具。
关于javascript - 使用多种模式构建跨度标签的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3956100/