Javascript 使用jQuery replaceWith()将选定文本替换为输入文本
我希望用户能够从正文中输入一个短语,然后用用户想要的任何内容替换该文本。我相信在这里最好,但我不完全确定如何实施它 这是我的输入区域的HTMLJavascript 使用jQuery replaceWith()将选定文本替换为输入文本,javascript,jquery,Javascript,Jquery,我希望用户能够从正文中输入一个短语,然后用用户想要的任何内容替换该文本。我相信在这里最好,但我不完全确定如何实施它 这是我的输入区域的HTML <h2>Replace</h2> <table> <tr> <td>Original:</td> <td> <input id="original" type="text" />
<h2>Replace</h2>
<table>
<tr>
<td>Original:</td>
<td>
<input id="original" type="text" />
</td>
</tr>
<tr>
<td>New Text:</td>
<td>
<input id="newtext" type="text" />
</td>
</tr>
<tr>
<td colspan="2">
<input id="replace" type="button" name="save" value="Replace" />
</td>
</tr>
</table>
</div>
谢谢大家!
全部
$(文档).ready(函数(){
$(“#红色”)。单击(函数(){
$(“文本”).css(“颜色”、“红色”);
});
$(“#蓝色”)。单击(函数(){
$(“文本”).css(“颜色”、“蓝色”);
});
$(“#绿色”)。单击(函数(){
$(“文本”).css(“颜色”、“绿色”);
});
$(“#times_new_roman”)。单击(函数(){
$(“#text”).css(“字体系列”,“新罗马时代”);
});
$(“#courier”)。单击(函数(){
$(“#text”).css(“字体系列”、“信使”);
});
$(“#comic_sans”)。单击(函数(){
$(“#text”).css(“字体系列”,“漫画无MS”);
});
$(“#arial”)。单击(函数(){
$(“#text”).css(“字体系列”、“Arial”);
});
$('input[name=“decoration”]”)。更改(函数(){
if($(this).val()=='bold'){
if($(this).is(':checked'))$(“#text”).css('font-weight','bold');
else$(“#text”).css('font-weight','normal');
}
else if($(this).val()='italic'){
if($(this).is(':checked'))$(“#text”).css('font-style','italic');
else$(“#text”).css('font-style','normal');
}
});
$('input[name=“font”]”)。绑定('keypress',函数(事件){
var regex=new RegExp(“[0-9]”);
var key=String.fromCharCode(!event.charCode?event.which:event.charCode);
如果(!正则表达式测试(键)){
event.preventDefault();
返回false;
}
});
$(“#向上”)。单击(函数(){
var currentSize=$(“#文本”).css(“字体大小”);
currentSize=currentSize.replace(/[^\d.]/g,”);
currentSize++;
如果(currentSize<10 | | currentSize>80){
警告(“字体大小仅限10到80之间!”);
}
否则{
$(“#text”).css(“字体大小”,“当前大小+”px”);
}
});
$(“#向下”)。单击(函数(){
var currentSize=$(“#文本”).css(“字体大小”);
currentSize=currentSize.replace(/[^\d.]/g,”);
当前大小--;
如果(currentSize<10 | | currentSize>80){
警告(“字体大小仅限10到80之间!”);
}
否则{
$(“#text”).css(“字体大小”,“当前大小+”px”);
}
});
$('input[name=“font”]”)。在(“keyup change”,函数()上{
var newSize=$(this.val();
如果(新闻大小<10 | |新闻大小>80){
警告(“字体大小仅限10到80之间!”);
}
否则{
$(“#text”).css(“字体大小”,“新闻大小+”px”);
}
});
});
信息2300-HW1
超级酷的Javascript文本编辑器
字体颜色
红色
蓝色
绿色
字体系列
信使
新罗马时代
Arial
连环漫画
字号
二甲苯
文字装饰
大胆的
斜体
搜索功能[已实现]
代替
原件:
新案文:
您可以使用
$('#text').text('任何您想要的') 你是说像
if (!RegExp.escape) {
RegExp.escape = function (s) {
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
};
}
jQuery(function () {
$('#replace').click(function () {
var text = $('#original').val();
if (text) {
var regex = new RegExp(RegExp.escape(text), 'g');
$('h2').text(function (i, text) {
return text.replace(regex, $('#newtext').val())
})
}
})
})
演示:
您可以使用一个简单的正则表达式替换目标中的搜索字符串。如果我理解正确,您要做的是替换div#text中的一个单词,其中每行文本都被包装在
标记中。(这是故意的吗?如果不是,请在评论中告诉我,我会在一个P标签中添加答案。)
回答这个问题的步骤是:
获取元素的文本
进行搜索并替换
在元素#text上设置新文本
为此:
function replaceTextAtDiv(){
var div_text = $("#text").text();
var textToReplace = $("#original").val();
var newText = $("#newtext").val();
div_text.replace(textToReplace, newText);
$("#text").text(div_text);
/* OR - In One Line
/$("#text").text($("#text").text().replace($("#original").val(), $("#newtext").val()));*/
}
建议
将所有文本放入
包装器中。这样做:
<?php
//reads in the file
$file = file("lorem.txt");
$string = "";
foreach($file as $line){
$string = $string . "\n" . $line; //Take away [ . "\n" ] if it generates 2 line breaks.
}
echo "<p>".$string."</p>";
?>
$(“表”)。单击(函数(){$(“#文本”)。替换为(“用户想要的任何内容”);});那么,在您需要的地方,我如何使用户输入的任何内容都只需使用$this或?使用$(“#newtext”).val()替换为您想要实现的内容?如果我理解正确,您不希望用户能够编辑第一个输入框?您可以使用“只读”属性。您还可以演示如何使用#text
元素吗?查看输入的原始位置?我的页面上有一段文字。我希望用户从该段文本(#text)中输入一个短语或单词,然后能够用输入框中输入的任何内容替换该单词或短语。我将发布我的整个html/js,以便您可以看到。有点像replaceWith()
是用来替换DOM对象的。你想要字符串。替换。我想这回答了问题。您可以使用sugarJS来避免编写自己的转义函数(以及JavaScript应该具备的一百种其他功能):-)啊,谢谢。只有几个问题。如果我不希望用户输入任何html标记或奇怪的东西,只需在$.replace()部分中允许字母、数字和空格,对吗?另外,您在代码中的什么地方做的,以便用户可以在替换部分中输入任何内容?这真的让我大吃一惊,我很想知道未来的项目我想你们可以允许用户输入任何东西
function replaceTextAtDiv(){
var div_text = $("#text").text();
var textToReplace = $("#original").val();
var newText = $("#newtext").val();
div_text.replace(textToReplace, newText);
$("#text").text(div_text);
/* OR - In One Line
/$("#text").text($("#text").text().replace($("#original").val(), $("#newtext").val()));*/
}
<?php
//reads in the file
$file = file("lorem.txt");
$string = "";
foreach($file as $line){
$string = $string . "\n" . $line; //Take away [ . "\n" ] if it generates 2 line breaks.
}
echo "<p>".$string."</p>";
?>