是否可以替换textarea或textbox中特定位置的字符?我可以使用indexOf()来计算位置但是知道这个我怎样才能真正替换那个特定字符?
答案 0 :(得分:3)
<html>
<head>
<script>
function modText()
{
var tb = document.getElementById("mtb");
var indexToReplace = 1;
var stringToPutIn= "!";
var temp = tb.value;
var startString = temp.substr(0, indexToReplace);
var endString = temp.substring(indexToReplace+1);
tb.value = startString+stringToPutIn+endString;
}
</script>
</head>
<body>
<input type="text" id="mtb" /><br />
<input type="button" onclick="modText();">
</body>
</html>
替换功能不起作用,因为您可能在要替换的字母前面有相同的字母。
请注意,上述功能仅在您替换一个且仅替换一个字符时才有效。
答案 1 :(得分:2)
只需使用JavaScript字符串的内置方法即可。假设您在变量textArea
中有一个文本区域:
var textArea = document.getElementById("yourTextArea");
...以下创建一个类似于Array
's splice
method的漂亮,通用,可重用的字符串拼接功能,然后您可以使用它来更新textarea的值:
function spliceString(str, start, count, stringToInsert) {
return str.slice(0, start) + stringToInsert + str.slice(start + count);
}
textArea.value = spliceString(textArea.value, charIndex, 1, "**NEW BIT**");
另一种方法是通过扩充String
的原型来创建所有字符串的拼接方法:
String.prototype.splice = function(start, count, stringToInsert) {
return this.slice(0, start) + stringToInsert + this.slice(start + count);
};
textArea.value = textArea.value.splice(charIndex, 1, "**NEW BIT**");
答案 2 :(得分:1)
您可以使用substr
或substring
来执行此操作(请注意第二个参数的不同语义):
var str = 'foobar';
alert(str.substr(3, 3)); // bar
alert(str.substring(3, 6)); // bar
答案 3 :(得分:0)
您可以使用replace
<input id="myTxtbox" type="textbox">
<script type="text/javascript">
var txtbox = document.getElementByID("myTxtbox");
document.write(txtbox.value.replace("To Replace", "With This"));
</script>