scrapboxにおける単語単位のcursor移動
正規表現
スペースとハイフン: /^[\s-]+$/
英数字: /^[0-9a-zA-Z\u00C0-\u024F_]+$/
[\u00C0-\u024F]は以下の文字集合
code:js
const chars = [];
for (let i = 0x00c0; i <= 0x024f; i++) {
chars.push(String.fromCodePoint(i));
}
alert(JSON.stringify(chars));
キリル文字: /^[\u0400-\u04F0\u0500-\u052F\u2DE0-\u2DFF\uA640-\uA690]+$/
正規表現の部分だけ、ここから拝借させていただくか。
code:js
function charType(n) {
for (var [i,
s]of Object.entries({
})) if (s.test(n)) return i;
return 'other'
}
function splitWord(n) {
var i,
s = [
],
_ = n.split(''),
w = '';
for (var P of _) {
var j = charType(P);
i && i !== j && (s.push({
str: w,
type: i
}), w = ''),
i = j,
w += P
}
return '' !== w && s.push({
str: w,
type: i
}),
s
}