75106


先日[こちら](https://ja.stackoverflow.com/questions/74998/%E9%81%B8%E6%8A%9E%E7%AF%84%E5%9B%B2%E3%81%AE%E6%96%87%E7%AB%A0%E4%B8%AD%E3%81%AB%E3%81%82%E3%82%8B%E7%89%B9%E5%AE%9A%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%81%AE%E5%89%8D%E5%BE%8C%E3%81%AB%E5%8D%8A%E8%A7%92%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%82%92%E5%85%A5%E3%82%8C%E3%81%9F%E3%81%84)の質問にて「半角全角文字の境界に空白を挿入」というマクロをお教えいただきました。  
今回それに少し改変を加えたいと思っておりまして、先頭の文字が「・」だった場合、その次にある半角文字の左側だけ空白を入れないようにしたいのですが、書き方が分からず困っております。  
例えば次のような文章があった場合、

[code]

    ・あいうえおxxxかきくけこ
    ・xxxあいうえおかきくけこ
    
[/code]

先頭の「・」と「xxx」の間にはスペースを空けないようにしたいです

[code]

    ・あいうえお xxx かきくけこ
    ・xxx あいうえおかきくけこ
    
[/code]

上記のマクロを以下のように変更してみたのですが、正規表現がおかしいのか if 文が間違っているのかうまく変換できない状況です・・・

[code]

    var sentou = document.selection.Find('^・', eeFindSelectAll);
    
    if (sentou) {
      var regExpOption = (eeFindNext | eeFindReplaceCase | eeFindReplaceEscSeq | eeReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp);
      document.selection.Replace("([\\x{1000}-\\x{ffff}])([\\x{0021}-\\x{00ff}])", "\\1 \\2", regExpOption );
      document.selection.Replace("([\\x{0021}-\\x{00ff}])([\\x{1000}-\\x{ffff}])", "\\1 \\2", regExpOption );
      document.HighlightFind = false;
    }
    
[/code]

もし解決方法がお分かりの方がいらっしゃいましたら、アドバイスいただけると助かります。  
よろしくお願いいたします。


CC BY-SA 4.0
2021-04-04T03:28:12.707
75074
2021-04-17T14:24:01.060
2021-04-17T14:24:01.060
19110
44487
question
javascript emeditor
先頭文字が「・」だった場合、その次にある半角文字の左側だけ空白を入れないようにしたい


マクロを次のように書き換えてください。

**補足**  
`・` のコード値は、U+30fb なので、`[\\x{1000}-\\x{ffff}]` を
`[\\x{1000}-\\x{30fa}\\x{30fc}-\\x{ffff}]` と書き換えました。

**SeparateWordsInHalfWidthChars.jsee**

[code]

    var regExpOption = (eeFindNext | eeFindReplaceCase | eeFindReplaceEscSeq | eeReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp);
    document.selection.Replace("([\\x{1000}-\\x{30fa}\\x{30fc}-\\x{ffff}])([\\x{0021}-\\x{00ff}])", "\\1 \\2", regExpOption );
    document.selection.Replace("([\\x{0021}-\\x{00ff}])([\\x{1000}-\\x{30fa}\\x{30fc}-\\x{ffff}])", "\\1 \\2", regExpOption );
    document.HighlightFind = false;
    
[/code]


CC BY-SA 4.0
2021-04-05T16:54:15.530
75106
2021-04-05T16:54:15.530
40017
75074
answer