2025/11/18
ポータルサイト内の学籍番号から名前を知りたいときがある
TreeWalkerで、Text ノードのみをなめながら、学籍番号付きの要素に置換していく発想
https://developer.mozilla.org/en-US/docs/Web/API/Document/createTreeWalker#using_whattoshow
学籍番号を含む文字列を置換し、番号の後ろに名前を付ける実装
code:js
const paragraph = "We are b2230000, b2240000, b2250000";
const usernameToName = new Map([
"b2230000", "名前A",
"b2240000", "名前B"
]);
function replacer(username) {
const name = usernameToName.get(username);
return name != null ? ${username} (${name}) : username;
}
console.log(paragraph.replaceAll(/b22\d+/g, replacer));
code:js
let treeWalker = document.createTreeWalker(
document.body,
NodeFilter.SHOW_TEXT,
);
while (treeWalker.nextNode()) {
const node = treeWalker.currentNode;
node.data = node.data.toUpperCase();
}
/icons/hr.icon