「Windowsクリップボード内容表示」の版間の差分
ナビゲーションに移動
検索に移動
| (2人の利用者による、間の8版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
Windowsクリップボード内容の編集・コピー可能なボックスを表示。 | |||
Meryのクリップボード履歴も使ってますが、Windowsの方のクリップボード履歴から文字列の一部を取り出したいので作成。 | |||
注意:素人のAI作成です。 | 注意:素人のAI作成です。 | ||
== 補足説明 == | == 補足説明 == | ||
一部分のコピーや編集してコピー場合、右クリックメニューから選択してコピーしてください。 | |||
文字の追加や削除など簡単な編集も出来ますが、Enterキーによる改行は終了してしまうのでCtrl+Enterキーで改行してください。 | |||
私の環境では、Ctrl+Enterキーで改行できますが、機能しない場合は、Shift+EnterキーやAlt+Enterキーなどで試してください。 | |||
== 使い方 == | == 使い方 == | ||
Mery 3.8.3で動作確認。 | Mery 3.8.3で動作確認。 | ||
以下のソースコードをClipboard history.jsなど適当な名前で保存。 | |||
QuickJSの場合、一行目に | QuickJSの場合、一行目に | ||
| 43行目: | 41行目: | ||
} | } | ||
</syntaxhighlight> | |||
== ソースコード == | |||
改行コード可視化+空文字対応+タブ可視化 対応版 | |||
<syntaxhighlight lang="javascript" copy> | |||
#title="Windowsクリップボード内容表示(改行コード可視化+空文字対応+タブ可視化)" | |||
// clipboardData オブジェクトを使用してテキストを取得 | |||
var sClip = clipboardData.getData("Text"); | |||
// 文字列かつ空でない場合のみ処理 | |||
if (typeof sClip === "string" && sClip.length > 0) { | |||
// 改行コード・タブを可視化(表示用に改行も維持) | |||
// 各改行コードを「エスケープ表記」+「改行の目印としての\n」+「実際の改行」 | |||
// という3点セットで統一して可視化する。 | |||
// 実改行への変換はプレースホルダー(\u0000)を使い、すべてのマーカー付与が | |||
// 終わった後に最後にまとめて実施することで、途中で挿入した文字が | |||
// 後続の置換に誤って再マッチする不具合を防いでいる。 | |||
var sView = sClip | |||
.replace(/\r\n/g, "\\r\\n\\n\u0000") // CR+LF (Windows) -> \r\n\n | |||
.replace(/\r/g, "\\r\\n\u0000") // CR (Macintosh) -> \r\n | |||
.replace(/\n/g, "\\n\\n\u0000") // LF (UNIX) -> \n\n | |||
.replace(/\t/g, "\\t") // タブ | |||
.replace(/\u0000/g, "\n"); // プレースホルダーを実改行に一括変換 | |||
// mePromptMultiline を指定して、複数行の編集・コピー可能なボックスを表示 | |||
prompt( | |||
"クリップボードの内容(ここから編集・コピーが可能です(改行はCtrl+Enter)):", | |||
sView, | |||
mePromptMultiline | |||
); | |||
} else { | |||
// クリップボードが空、またはテキストでない場合 | |||
alert("クリップボードにテキストが見つかりませんでした。"); | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== 変更履歴 == | == 変更履歴 == | ||
* 2026-04-01: 初版公開 | * 2026-04-01: 初版公開 | ||
* 2026-04-01-12:00頃: 修正 | |||
* 2026-04-09: 改行コード可視化+空文字対応+タブ可視化 対応版 追加 | |||
* 2026-07-12: 改行コード可視化+空文字対応+タブ可視化 対応版 の\n\n LF (UNIX)が正しく機能してないのを修正 | |||
2026年7月12日 (日) 08:40時点における最新版
概要[編集]
Windowsクリップボード内容の編集・コピー可能なボックスを表示。
Meryのクリップボード履歴も使ってますが、Windowsの方のクリップボード履歴から文字列の一部を取り出したいので作成。
注意:素人のAI作成です。
補足説明[編集]
一部分のコピーや編集してコピー場合、右クリックメニューから選択してコピーしてください。
文字の追加や削除など簡単な編集も出来ますが、Enterキーによる改行は終了してしまうのでCtrl+Enterキーで改行してください。
私の環境では、Ctrl+Enterキーで改行できますが、機能しない場合は、Shift+EnterキーやAlt+Enterキーなどで試してください。
使い方[編集]
Mery 3.8.3で動作確認。
以下のソースコードをClipboard history.jsなど適当な名前で保存。
QuickJSの場合、一行目に
#language = "quickjs"
を追加。
ソースコード[編集]
#title="Windowsクリップボード内容表示"
// clipboardData オブジェクトを使用してテキストを取得します
var sClip = clipboardData.getData("Text");
if (sClip) {
// mePromptMultiline を指定して、複数行の編集・コピー可能なボックスを表示
// 第2引数に取得したテキストをセットします
prompt("クリップボードの内容(ここから編集・コピーが可能です(改行はCtrl+Enter)):", sClip, mePromptMultiline);
} else {
// クリップボードが空、またはテキストデータでない場合
alert("クリップボードにテキストが見つかりませんでした。");
}
ソースコード[編集]
改行コード可視化+空文字対応+タブ可視化 対応版
#title="Windowsクリップボード内容表示(改行コード可視化+空文字対応+タブ可視化)"
// clipboardData オブジェクトを使用してテキストを取得
var sClip = clipboardData.getData("Text");
// 文字列かつ空でない場合のみ処理
if (typeof sClip === "string" && sClip.length > 0) {
// 改行コード・タブを可視化(表示用に改行も維持)
// 各改行コードを「エスケープ表記」+「改行の目印としての\n」+「実際の改行」
// という3点セットで統一して可視化する。
// 実改行への変換はプレースホルダー(\u0000)を使い、すべてのマーカー付与が
// 終わった後に最後にまとめて実施することで、途中で挿入した文字が
// 後続の置換に誤って再マッチする不具合を防いでいる。
var sView = sClip
.replace(/\r\n/g, "\\r\\n\\n\u0000") // CR+LF (Windows) -> \r\n\n
.replace(/\r/g, "\\r\\n\u0000") // CR (Macintosh) -> \r\n
.replace(/\n/g, "\\n\\n\u0000") // LF (UNIX) -> \n\n
.replace(/\t/g, "\\t") // タブ
.replace(/\u0000/g, "\n"); // プレースホルダーを実改行に一括変換
// mePromptMultiline を指定して、複数行の編集・コピー可能なボックスを表示
prompt(
"クリップボードの内容(ここから編集・コピーが可能です(改行はCtrl+Enter)):",
sView,
mePromptMultiline
);
} else {
// クリップボードが空、またはテキストでない場合
alert("クリップボードにテキストが見つかりませんでした。");
}
変更履歴[編集]
- 2026-04-01: 初版公開
- 2026-04-01-12:00頃: 修正
- 2026-04-09: 改行コード可視化+空文字対応+タブ可視化 対応版 追加
- 2026-07-12: 改行コード可視化+空文字対応+タブ可視化 対応版 の\n\n LF (UNIX)が正しく機能してないのを修正
スポンサーリンク