Javascript 获取用“quot;”分隔的单词&引用;用正则表达式
我有以下代码片段: HTMLJavascript 获取用“quot;”分隔的单词&引用;用正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我有以下代码片段: HTML <div class="colors"> <h1>Colors:</h1> <div class="recipe"></div> </div> <div class="numbers"> <h1>Numbers:</h1> <div clas
<div class="colors">
<h1>Colors:</h1>
<div class="recipe"></div>
</div>
<div class="numbers">
<h1>Numbers:</h1>
<div class="recipe"></div>
</div>
<div class="people">
<h1>People:</h1>
<div class="recipe"></div>
</div>
颜色:
编号:
人:
JavaScript
var colors = 'yellow / black / purple',
numbers = '5 / 15 / 25',
people = 'Brad Pitt / Leonardo DiCaprio / Anne Hathaway';
$('.colors .recipe').html(colors.replace(/(\w+)\/*/g, '<em>$1</em><br>'));
$('.numbers .recipe').html(numbers.replace(/(\w+)\/*/g, '<em>$1</em><br>'));
$('.people .recipe').html(people.replace(/(\w+)\/*/g, '<em>$1</em><br>'));
var colors='黄色/黑色/紫色',
数字='5/15/25',
人物='布拉德·皮特/莱昂纳多·迪卡普里奥/安妮·海瑟薇';
$('.colors.recipe').html(colors.replace(/(\w+)\/*/g,$1
);
$('.numbers.recipe').html(numbers.replace(/(\w+)\/*/g,$1
);
$('.people.recipe').html(people.replace(/(\w+)\/*/g,$1
);
我不擅长正则表达式,然后在各自的配方上呈现分离的值时,我得到了意想不到的结果(您可以在上面发布的JSFIDLE上看到更多)
我的意思是,以下结果对我来说是:
[……]
布拉德
皮特
/莱昂纳多
迪卡普里奥
[……]
我想要和需要的是:
布拉德皮特
莱昂纳多·迪卡普里奥
没有斜杠,没有分开的名字/姓氏。你不需要正则表达式。拆分方法可以完成以下任务:
var colors = 'yellow / black / purple',
numbers = '5 / 15 / 25',
people = 'Brad Pitt / Leonardo DiCaprio / Anne Hathaway';
function wrapEm(e) {
return "<em>" + e + "</em>";
}
people.split(" / ").join("<br/>");
$('.colors .recipe').html(colors.split(" / ").map(wrapEm).join("<br/>"));
$('.numbers .recipe').html(numbers.split(" / ").map(wrapEm).join("<br/>"));
$('.people .recipe').html(people.split(" / ").map(wrapEm).join("<br/>"));
var colors='黄色/黑色/紫色',
数字='5/15/25',
人物='布拉德·皮特/莱昂纳多·迪卡普里奥/安妮·海瑟薇';
函数wrapEm(e){
返回“+e+”;
}
people.split(“/”).join(
);
$('.colors.recipe').html(colors.split(“/”).map(wrapEm.join(
));
$('.numbers.recipe').html(numbers.split(“/”).map(wrapEm.join(
));
$('.people.recipe').html(people.split(“/”).map(wrapEm.join(“
”));
Split顾名思义,使用
/
作为分隔符,将字符串拆分为一个数组。不需要正则表达式。拆分方法可以完成以下任务:
var colors = 'yellow / black / purple',
numbers = '5 / 15 / 25',
people = 'Brad Pitt / Leonardo DiCaprio / Anne Hathaway';
function wrapEm(e) {
return "<em>" + e + "</em>";
}
people.split(" / ").join("<br/>");
$('.colors .recipe').html(colors.split(" / ").map(wrapEm).join("<br/>"));
$('.numbers .recipe').html(numbers.split(" / ").map(wrapEm).join("<br/>"));
$('.people .recipe').html(people.split(" / ").map(wrapEm).join("<br/>"));
var colors='黄色/黑色/紫色',
数字='5/15/25',
人物='布拉德·皮特/莱昂纳多·迪卡普里奥/安妮·海瑟薇';
函数wrapEm(e){
返回“+e+”;
}
people.split(“/”).join(
);
$('.colors.recipe').html(colors.split(“/”).map(wrapEm.join(
));
$('.numbers.recipe').html(numbers.split(“/”).map(wrapEm.join(
));
$('.people.recipe').html(people.split(“/”).map(wrapEm.join(“
”));
Split顾名思义,使用
/
作为分隔符,将字符串拆分为一个数组。将正则表达式替换为:
/([^\/]+)\/*/g
您希望
[^\/]+
表示除斜杠以外的任何含义,而不是对单词(不包括空格)使用(\w+)
。用以下内容替换正则表达式:
/([^\/]+)\/*/g
不要对单词(不包括空格)使用
(\w+)
,而是希望[^\/]+
表示除斜杠以外的任何含义。此正则表达式非常适合:
$('.colors .recipe').html(colors.replace(/(\\)?\//g, '<em>$1</em><br>'));
$('.colors.recipe').html(colors.replace(/(\\)?\//g,$1
);
此正则表达式工作完美:
$('.colors .recipe').html(colors.replace(/(\\)?\//g, '<em>$1</em><br>'));
$('.colors.recipe').html(colors.replace(/(\\)?\//g,$1
);
如果您需要更多的宽大处理,您仍然可以将regex与.split()一起使用。例如:.split(/\s*\/\s*/)
。是的,绝对不要看工程。回答时我完全忘记了。em
标记去哪里了?使用map()
获取em
标记:colors.split(“/”).map(函数(e){return”“+e+”;})。join(
)
Fiddle:@GuilhermeOderdenge:map()
接受一个带有一个参数的回调函数,并为数组中的每个元素调用该函数,因此e
这里是调用该函数的元素。请参阅,如果您需要更多的宽大处理,您仍然可以将regex与.split()一起使用。例如:.split(/\s*\/\s*/)
。是的,绝对不要看工程。回答时我完全忘记了。em
标记去哪里了?使用map()
获取em
标记:colors.split(“/”).map(函数(e){return”“+e+”;})。join(
)
Fiddle:@GuilhermeOderdenge:map()
接受一个带有一个参数的回调函数,并为数组中的每个元素调用该函数,因此e
这里是调用该函数的元素。看见