如何使用 JavaScript 重建字符串
How to rebuild a string with JavaScript
下面的代码现在可以工作了。感谢Matt-SL指出 子字符串和子字符串之间的区别
此函数用于在textarea
中为文本添加标签,就像您在 Stackoverflow 上的问答中用于将文本加粗一样。
var lastFocus;
$("#bold").click(function (e) {
e.preventDefault();
e.stopPropagation();
befString = "<b>";
aftString = "</b>";
dif = aftString.length - befString.length;
if (lastFocus) {
setTimeout(function () { lastFocus.focus() }, 10);
var textEdit = document.getElementById('textEdit');
var befSel = textEdit.value.substr(0, textEdit.selectionStart);
var aftSel = textEdit.value.substr(textEdit.selectionEnd, textEdit.length);
var select = textEdit.value.substr(textEdit.selectionStart, textEdit.selectionEnd-aftString.length );
textEdit.value = befSel + befString + select + aftString + aftSel;
}
return (false);
});
$("#textEdit").blur(function() {
lastFocus = this;
});
#textEdit{
width:300px;
height:200px;
}
#bold{
font-size:25px;
cursor:pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="editToolBar" class="editToolBar">
Select all 2's and
<span id="bold"></b>click here</b></span>
</div>
<textarea id="textEdit" type="text" name="textEdit" size="" class="editDocInput" data-type="" >111112222233333</textarea>
我的问题:
我不知道为什么字符串没有正确重新组合在一起。尝试一下,自己看看。
将定义var select
的行更改为使用substring()
而不是substr()
,并且不再从textEdit.selectionEnd
中减去aftString.length
。这意味着文本选择索引与substring()
函数的预期参数一致。
下面是一个要演示的 JSFiddle。
var select = textEdit.value.substring(textEdit.selectionStart, textEdit.selectionEnd);
根据 selectionEnd 的文档,它是选择后第一个字符的索引。
substr 和 substring 之间的区别是他们期望的第二个参数:
-
substr(startIndex, length)
-
substring(startIndex, endIndex)
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 可变大小的JavaScript字符串如何成为基元类型
- 将DOM节点值与字符串Javascript进行比较
- 是否有任何库可以为 JSON 数据生成元组和重建字符串
- Ajax iFrame:PHP 不会在我的循环中添加我与 SQL 不同的字符串(以重建 HTML 代码)
- 如何使用 JavaScript 重建字符串
- 如何重建一个blob图像从二进制字符串(客户端隐藏的表单字段)在谷歌应用程序脚本
- 如何拆分和重建字符串
- 在javascript中使用substring切割和重建字符串