我有以下任务要做:编写一个包含两个文本区域 T1 和 T2 的网页。用户在文本区域 T1 中输入字符串以呈现正则表达式。然后用户在文本区域T2中输入一些文本。您的代码应输出 T2 的文本,其中突出显示的元素对应于 T1 的正则表达式的匹配项。我的任务的附加要求是仅匹配最后一次出现。
这是我到目前为止所拥有的:
<script>
var str = "This is really cooly";
str = str.replace(/\ly(?=[^\ly]*)$/, "BA");
document.write(str + '<br>');
</script>
但这仅在最后一个单词以“ly”结尾时才匹配。
我设法用表格做到了这一点,但只是第一次出现。
<html>
<body>
<p id="demo">Click the button to display the matches.</p>
<form name="My_form" id="My_form">
T1:<input type="text" name="T1" id="T1" size=200>
<br>
T2:<input type="text" name="T2" id="T2" size=200>
</form>
<br>
<button onclick="myFunction()">Try it</button>
<script type="text/javascript">
function myFunction()
{
var regex = document.My_form.T1.value;
var n = regex.match(document.My_form.T2.value);
var result = regex.replace(n, '<b>$&</b>');
document.getElementById('demo').innerHTML = result;
}
</script>
</body>
</html>
我不知道如何将用户输入转换为 e 模式以搜索为正则表达式(我不确定这是否可能。这让我的大脑烧了一个多星期,我还有不到 24 小时的时间来完成这个。