Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let createPattern = val => new RegExp(`(${val})`, "ig");
- // matchHighlighter({
- // searchText: "礼物",
- // items: [
- // {
- // name: "礼物",
- // id: "谁的",
- // kk: "礼sdfsdfjk物"
- // }
- // ]
- // })
- export function matchHighlighter({
- searchText,
- items = [],
- pick = [],
- styleRule = "color: red"
- }) {
- let pat = createPattern(searchText);
- if (!pick.length) {
- let keyDict = new Set();
- items.forEach(item => {
- Object.keys(item).forEach(k => keyDict.add(k));
- });
- pick = [...keyDict];
- }
- return items.map(item => {
- let search = {};
- pick.forEach(key => {
- if (item[key] && pat.test(item[key])) {
- search[key] = item[key].replace(
- pat,
- `<span style="${styleRule}">$1</span>`
- );
- }
- });
- return {
- ...item,
- _matchHighlighted: search
- };
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement