标签: caret

如何避免cmd.exe解释shell特殊字符,如<> ^

我有一个Windows CMD脚本,它接受许多参数并执行EXE,首先传递一些硬编码参数,然后传递用户的所有参数.CMD脚本如下所示:

launcher.exe paramX paramY %*
Run Code Online (Sandbox Code Playgroud)

用户将从Windows shell执行CMD脚本,如下所示:

launcher.cmd param1 param2 param3 [...]
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果参数到CMD脚本包含壳等特殊字符< >^,用户被迫通过前述各用3插入符号逸出这些^壳转义字符.

两个例子

1)要将参数传递ten>one给EXE,用户必须按如下方式启动CMD:

launcher.cmd ten^^^>one
Run Code Online (Sandbox Code Playgroud)

这样做的原因是,shell特殊字符^,并>通过命令外壳在两个层面解释,首先在命令行和第二的CMD脚本中.因此,使用脱字符^外壳转义字符转义的shell必须应用两次.问题是这对用户来说并不明显,看起来很难看.

对于这个例子,一个更好的解决方案是用双引号括起参数.但是,这会分解为更复杂的示例,其中包含参数中的文字双引号.

2)要将参数传递"^给EXE,用户必须按如下方式启动CMD:

launcher.cmd "\"^^^^"
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我想支持包含任何低ASCII字符序列的参数,不包括控制字符,即代码点0x20到0x7E.我知道会有一些例子,用户必须使用插入符号来逃避某些shell特殊字符.但是,我希望用户在这些情况下每次都必须使用3个插入符,因为它们恰好是在调用CMD脚本而不是EXE.

我可以通过使用执行相同操作的EXE替换CMD脚本来解决此问题.但是,有没有办法改变CMD脚本,以便它将参数传递给EXE而不解释shell特殊字符?

cmd escaping batch-file caret

12
推荐指数
2
解决办法
2万
查看次数

你如何匹配正则表达式中的插入符号(^)?

我知道这些不会这样做也是为什么,但你如何匹配呢?

/^/
/(^)/
/[^]/
Run Code Online (Sandbox Code Playgroud)

regex caret

12
推荐指数
2
解决办法
1万
查看次数

在javascript中获取插入位置之前的最后一个字符

我即将在我的contenteditable div中实现Facebook ,如果我给'$'和一些像'a'这样的字符我需要一个自动建议,它应该弹出我的插入位置附近.

我需要知道如何在JavaScript for IE和其他浏览器中找到插入位置之前的最后一个字符.我可以访问Jquery库.

(function($) {
    $.fn.getCursorPosition = function() {
        var input = this.get(0);
        if (!input) return; // No (input) element found
        if ('selectionStart' in input) {
            // Standard-compliant browsers
            return input.selectionStart;
        } else if (document.selection) {
            // IE
            input.focus();
            var sel = document.selection.createRange();
            var selLen = document.selection.createRange().text.length;
            sel.moveStart('character', -input.value.length);
            return sel.text.length - selLen;
        }
    }
})(jQuery);

eg.
var caretPosition = $("#contenteditablediv").getCursorPosition();
var lastchar = getchar(caretposition -1);???
Run Code Online (Sandbox Code Playgroud)

javascript jquery autocomplete caret contenteditable

12
推荐指数
1
解决办法
7915
查看次数

在可信赖的插入位置上考虑```s

为了在一个contenteditable元素中获取和设置插入位置,我尝试了这个答案中的代码,但是当你移动到不同的文本节点时,开始和结束位置会重置.

<div contenteditable>012345<br><br><br>9012345</div>
Run Code Online (Sandbox Code Playgroud)

所以,我修改了这个答案的代码(通过@TimDown),但它还没有完全正确地计算换行符...在这个演示中,当我点击4并按下右箭头三次后,我会看到开始/结束报告5,6,然后8.或者,使用鼠标从4第一行中选择并继续向右选择(请参阅gif)

选择满足

这是代码(演示 ;即使它看起来像,jQuery 没有被使用)

function getCaret(el) {
  let start, end;
  const range = document.getSelection().getRangeAt(0),
    preSelectionRange = range.cloneRange(),
    postSelectionRange = range.cloneRange();
  preSelectionRange.selectNodeContents(el);
  preSelectionRange.setEnd(range.startContainer, range.startOffset);
  postSelectionRange.selectNodeContents(el);
  postSelectionRange.setEnd(range.endContainer, range.endOffset);
  start = preSelectionRange.toString().length;
  end = start + range.toString().length;
  // count <br>'s and adjust start & end
  if (start > 0) {
    var node,
      i = el.children.length;
    while (i--) {
      node = …
Run Code Online (Sandbox Code Playgroud)

javascript caret contenteditable ecmascript-6

12
推荐指数
1
解决办法
520
查看次数

将插入位置始终设置为以可信的div结束

在我的项目中,我试图将插入位置始终设置为文本的末尾.我知道这是默认行为,但是当我们动态添加一些文本时,插入符号位置会更改为Chrome和firefox中的起点(IE很好,太棒了).

无论如何要使它在chrome和firefox中正常工作?

这是小提琴

<div id="result" contenteditable="true"></div>
<button class="click">click to add text</butto>
Run Code Online (Sandbox Code Playgroud)
var result = $('#result');
$('.click').click(function () {
    var preHtml = result.html();
    result.html(preHtml + "hello");
    result.focus();
});
Run Code Online (Sandbox Code Playgroud)

我尝试添加,setStartsetEnd在此链接中提到,但没有用.

html javascript jquery position caret

11
推荐指数
1
解决办法
2万
查看次数

通过javascript在contenteditable div上获取插入符号坐标.

我一直在搜索很多,但我找不到一种方法来获取内容可编辑div上插入符号的(X,Y)坐标,网上有很多关于此的内容,但问题没有一个页面我发现根据div的顶部得到坐标,所以我的问题更简单:

如何在一个contenteditable div上得到插入符号的(X,Y)坐标,但是Y坐标必须根据div的顶部而不是从页面可见部分的顶部计算?

注1:我特别需要Y坐标.

注2:我只能使用纯javascript,没有JQUERY.

我的方式:

我没有找到直接的方法来做到这一点,所以作为一种解决方法,我想根据页面的可见部分和Div的隐藏部分获得Y坐标并对结果求和(我正在研究这个但我没有运气!).

html javascript caret contenteditable

11
推荐指数
3
解决办法
2905
查看次数

SwiftUI TextField 光标颜色

目前,我的 SwiftUI 的光标/插入符号TextFieldblue。是否有用于光标颜色的 API 或解决方法?

caret textfield swiftui

11
推荐指数
1
解决办法
2417
查看次数

WinForms TextBox的自定义插入

我正在WinForms .Net 2.0应用程序中开发类似应用程序的自定义HyperTerminal.我在Panel中有一个多行TextBox,您可以在其中与硬件设备进行交互.

我的客户希望拥有一个自定义Caret,一个填充矩形,大小为一个字符空间,而不是默认的垂直线.

我知道.Net默认情况下不提供执行此操作的选项,但必须有一些Windows功能才能执行此操作.

.net c# caret winforms

10
推荐指数
2
解决办法
1万
查看次数

Java:游标当前位置的列号和行号

我想知道游标在JTextArea中的列号和行号.即.在记事本中,当我在第一行而不是状态栏时显示Ln 1,Col 1.

提前致谢...

java swing cursor caret jtextarea

10
推荐指数
2
解决办法
2万
查看次数

Java - 滚动到JTextArea中的特定文本

我正在尝试在我正在编写的当前程序中实现一个功能,我想学习如何向下滚动到JTextArea中的特定文本.例如,假设我有以下内容:

JTextArea area = new JTextArea(someReallyLongString);
Run Code Online (Sandbox Code Playgroud)

someReallyLongString表示一个段落,或一段非常大的文本(其中垂直滚动条可见).所以我要做的是向下滚动到该文本区域内的特定文本.例如,假设someReallyLongString在滚动条的中间附近包含单词"the"(意味着这个单词不可见),我将如何向下滚动到该特定文本?

谢谢,任何帮助都会非常感激.

java swing text caret jtextarea

10
推荐指数
1
解决办法
8520
查看次数