如何使用 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 方法都持开放态度。
这是我的代码:
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...">
我有一个函数可以获取用户在 input
中键入的字符串的最后一个字符。但是我如何使用 execCommand()
select 那个单个字符?目标是将其复制到不同的 input
.
我尝试了 element.select()
,但没有结果。
要粘贴到新 input
中的字符必须是原始输入中可见的字符,而不是对应于用户键入的键盘键的字符,因为这一切的原因是有一个外部JS 库在一个 input
中处理一些 CJK 字符转换,并将结果移动到另一个
我将采用复制粘贴方法。因此,需要select这个字符。但如果有更好的实现方式,欢迎告诉我。
我对 Vanilla JavaScript 和 jQuery 方法都持开放态度。
这是我的代码:
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...">