如何使用 JavaScript select 字符串的最后一个字符?

How do I select the last character of a string, using JavaScript?

我有一个函数可以获取用户在 input 中键入的字符串的最后一个字符。但是我如何使用 execCommand() select 那个单个字符?目标是将其复制到不同的 input.

我尝试了 element.select(),但没有结果。

要粘贴到新 input 中的字符必须是原始输入中可见的字符,而不是对应于用户键入的键盘键的字符,因为这一切的原因是有一个外部JS 库在一个 input 中处理一些 CJK 字符转换,并将结果移动到另一个

我将采用复制粘贴方法。因此,需要select这个字符。但如果有更好的实现方式,欢迎告诉我。

我对 Vanilla JavaScript 和 jQuery 方法都持开放态度。

这是我的代码:

JSFiddle

function copyPaste () {
  var i1 = document.getElementById('userInput');
  var i2 = document.getElementById('input2');
  var c = i1.value.substr(lol.length - 1);
  c.select();
  document.execCommand('copy');
  i2.focus();
  document.execCommand('paste');
  i1.focus();
}
input {
  width: 255px;
}
  
button {
  display: block;
  margin: 20px 0;
  text-align: left;
}
<input type="text" id="userInput" placeholder="First, type something here.">

<button type="button" onclick="copyPaste"();>Then, click here to copy the last character<br>of the above input into the next input.</button>

<input type="text" id="input2" value="Some text...">

以下对我有用:

html:

<input type="text" id="userInput" placeholder="First, type something here.">
<button type="button" onclick="copyPaste()";>Then, click here to copy the last character<br>of the above input into the next input.</button>
<input type="text" id="input2" value="Some text...">

js:

function copyPaste () {
  var i1 = document.getElementById('userInput');
  var i2 = document.getElementById('input2');
  var c = i1.value.slice(i1.value.length - 1);
  i2.value = c;
}

使用slice()获取字符串的最后一个字符。请注意,我还修复了 html.

中的 onclick 处理程序

您不应使用 execCommand,因为它已过时。此外,您不需要使用剪贴板将一个(部分)字符串传输到另一个输入框。这可以通过标准字符串处理来完成:

  • 可以用slice(-1)得到最后一个字符

  • 我也更喜欢 addEventListener 而不是 onclick 属性(您也有打字错误)。

  • 使用 += 可以附加提取的字符:

var input = document.getElementById('userInput');
var output = document.getElementById('input2');
var btn = document.querySelector('button');

btn.addEventListener("click", function () {
  output.value += input.value.slice(-1);
});
input {
  width: 255px;
}
  
button {
  display: block;
  margin: 20px 0;
  text-align: left;
}
<input type="text" id="userInput" placeholder="First, type something here.">

<button type="button">Then, click here</button>

<input type="text" id="input2" value="Some text...">