【发布时间】:2015-08-11 02:53:13
【问题描述】:
我正在尝试创建一个“查找和替换”函数,该函数从 Form 元素中获取两个值(替换和替换),然后替换 DIV 中所有出现的“替换”。之后,我希望它显示带有替换字数的警报。
试图通过for 循环到达那里,但出了点问题。使用纯 JS,我对 jQuery 太陌生了。
function wordReplace()
{
var replaced = document.getElementById('replaced').value.toLowerCase;
var replacement = document.getElementById('replacement').value;
var workArea = document.getElementById('main').innerHTML;
for (var r=0; r<workArea.lenght; r++)
{
if (workArea[r].value.toLowerCase == 'replaced')
{
workArea[r].value.replace('\breplaced', 'replacement')
alert(workArea[r].value.replace('replaced', 'replacement').length)
}
}
}
这是我的表单代码,以防万一:(忽略<input type="submit" onclick="replacerHide();"/> - 它用于不同的功能,现在可以使用)
<form>
<label for="replaced" class="labelInline">Słowo szukane</label>
<input type="text" name="replaced" id="replaced"/>
<label for="replacement" class="labelInline">Zamiennik</label>
<input type="text" name="replacement" id="replacement"/>
<input type="submit" onclick="replacerHide();"/>
</form>
我在这里(在我的一个类似问题中)读到我应该熟悉regex,我做到了。但不知道如何应用它来解决我的问题。我很确定我在这里使用for 循环,但除此之外我是空的:/
我们将不胜感激所有和任何帮助。
编辑 - 更正完整的工作代码
function wordReplace()
{
var div = document.getElementById('main');
var find = document.getElementById('replaced').value;
var replace = document.getElementById('replacement').value;
var re_Find = new RegExp(find, 'gi');
var matches = div.innerHTML.match(new RegExp(find, 'gi'));
if (matches)
{
div.innerHTML = div.innerHTML.replace(re_Find, replace);
}
matches = matches ? matches.length : 0;
alert(matches);
}
对于Form
<div id="form">
<form id="formularz">
<label for="replaced" class="labelInline">Słowo szukane</label>
<input type="text" name="replaced" id="replaced"/>
<label for="replacement" class="labelInline">Zamiennik</label>
<input type="text" name="replacement" id="replacement"/>
<button onclick="replacerHide(); wordReplace();">Podmień!</button>
</form>
现在它正在按预期工作:)
【问题讨论】:
-
控制台输出说什么?我看到 workArea.lenght ,因为我知道它应该是“长度”,所以你的代码应该产生错误
-
请注意,仅调用
.replace()(如在您的内部循环中)不会更改您调用它的字符串。您需要使用来自.replace()的字符串returned。 -
更正了错字,但即使它仍在代码控制台中也没有给我任何错误。
标签: javascript html regex forms replace