選択範囲の文字列をリバース/シャッフル
- ページ: Macro/投稿
- 作者: みけCAT?
- カテゴリー: js
- 投稿日: 2014-01-18 (土) 11:14:45
メッセージ
選択範囲の文字列をリバース/シャッフルします。
行単位ではなく、文字単位で処理が行われます。
例
元の文字列 | サクラエディタ |
リバース | タィデエラクサ |
シャッフル | ィラタクデサエ |
※シャッフルの結果はランダムになります
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| |
var crlfFlag=(GetLineCode()==0);
var txt=GetSelectedString();
var txtArr=new Array();
for(var i=0;i<txt.length;i++) {
if(crlfFlag && i+1<txt.length && txt.charAt(i)=="\r" && txt.charAt(i+1)=="\n") {
txtArr.push("\r\n");
i++;
} else {
txtArr.push(txt.charAt(i));
}
}
for(var i=0;i<txtArr.length-1-i;i++) {
var tmp=txtArr[i];
txtArr[i]=txtArr[txtArr.length-1-i];
txtArr[txtArr.length-1-i]=tmp;
}
InsText(txtArr.join(""));
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| |
var crlfFlag=(GetLineCode()==0);
var txt=GetSelectedString();
var txtArr=new Array();
for(var i=0;i<txt.length;i++) {
if(crlfFlag && i+1<txt.length && txt.charAt(i)=="\r" && txt.charAt(i+1)=="\n") {
txtArr.push("\r\n");
i++;
} else {
txtArr.push(txt.charAt(i));
}
}
for(var i=txtArr.length-1;i>0;i--) {
var pos=~~(Math.random()*(i+1));
var tmp=txtArr[i];
txtArr[i]=txtArr[pos];
txtArr[pos]=tmp;
}
InsText(txtArr.join(""));
|