wysiwyg中的字符串IndexOf和Replace
String IndexOf and Replace in wysiwyg
我正在尝试创建一个非常简单的wysiwyg
编辑器(没有颜色),并尝试为其中一个开始标记创建"结束标记"。
我知道当我使用值时,它不会起作用,因为它得到了textarea
的全部值,所以我尝试使用string
,使用indexOf
和replace
。
但代码似乎不起作用,我研究了在textarea
中搜索特定关键字(假设为<html>
),并用另一个(关键字:<html> </html>
)替换它
JavaScript
$(document).ready(function() {
var textarea = document.getElementById('codeTextarea');
textarea.keyup(function(e) {
var str = textarea.value;
if(str.indexOf('<html>') != -1){
str.replace("<html>", "<html> </html>");
}
});
});
HTML
<textarea id="codeTextarea"></textarea>
如何用另一个字符串替换textarea
中的特定字符串?(即:<html>
将替换为<html> </html>
)
注意
请不要告诉我使用值,因为值可以是<doctype> <html>
,然后所需的代码就无法工作。
您的代码中有几个错误。第一个是您正在使用普通DOM对象中缺少的jquery.keyup事件。第二个问题是.replace实际上返回了替换的结果。第三个问题是,您没有将该值应用于文本区域。
var textarea = $('#codeTextarea');
textarea.keyup(function(e) {
var field = $(this);
var str = field.val();
if(str.indexOf('<html>') != -1){
str = str.replace("<html>", "<html> </html>");
}
field.val(str);
});
但是,这段代码是有效的,但是您应该重新考虑使用正则表达式。因为一旦您转换<html>到<html><html>下次您将得到<html><html><html>等等。
这是一把小提琴http://jsfiddle.net/ErF4k/1/
这是另一个jsfiddlehttp://jsfiddle.net/ErF4k/3/它使用正则表达式。这不是我最擅长的部分,但我的想法是匹配<html>后面跟着一些不同的东西,然后是一个标签。
var textarea = $('#codeTextarea');
textarea.keyup(function(e) {
var field = $(this);
var str = field.val();
if(str.indexOf('<html>') != -1){
str = str.replace(/'<html'>([a-z|A-Z|0-9| ])/g, "<html></html>");
}
field.val(str);
});
只需开始键入<html>,然后按字母、数字或间隔。
在替换完字符串中的内容后,您忘记了设置文本区域的值。尝试做:
$(document).ready(function() {
var textarea = document.getElementById('codeTextarea');
textarea.keyup(function(e) {
var str = textarea.value;
if(str.indexOf('<html>') != -1){
textarea.value = str.replace("<html>", "<html> </html>");
}
});
});
相关文章:
- 为什么indexOf在这个js代码中不起作用
- Angularjs通过过滤器获取indexOf
- indexOf具有2个参数
- .indexOf()不适用于特定元音
- 替换变量时,JavaScript字符串replace()不起作用
- 对字符串使用IndexOf来挑选某些单词
- Javascript 如何强制 string.replace 不将我的字符串解释为正则表达式
- 如何在做PHP时在base64中动态编码;preg_ replace”;
- 我使用了replace(“[^-A-Za-z0-9()%.],但它为'我可以解决这个错误吗
- 如果window.location.href.indexOf('player=1')添加样式
- inArray,indexOf在二维数组中
- Regex Replace仅适用于Last Match
- toFixed and replace dons'这似乎奏效了
- Replace()产生“;未捕获的类型错误:未定义的不是函数“;当与零一起使用时
- 调用replace()中的ajax函数
- 在AJAX中使用window.location.replace'成功'回调
- 为什么我得到“;没有方法'indexOf'"在ExtJS4.2中尝试在网格上使用缓冲渲染器时出错
- 如何在javascript中使用string.replace.将匹配字符串开头的两个不同表达式替换为null
- wysiwyg中的字符串IndexOf和Replace
- Regex-indexof-split和replace我应该如何正确应用它们