gpt4 book ai didi

javascript - 如何在 javascript 中使用 String.match()

转载 作者:行者123 更新时间:2023-11-29 16:55:35 25 4
gpt4 key购买 nike

我这里有这段代码:

<!DOCTYPE html>
<html>
<body>

<p id="demo">Display the result here.</p>
<input type = "text" value = "ood" id = "txt1"/>
<script>


var myString = "How much wood could a wood chuck chuck";
var myWord = document.getElementById("txt1").value; // ood
var myPattern = /.myWord/; // I want this to be /.ood/
var myResult = myString.match(myPattern);

document.getElementById("demo").innerHTML = myResult;

</script>

</body>
</html>

现在我想在这里做的是,我希望 oodtxt1 的值在 myString 中匹配。

但是像这样将变量 myWord 放入 myPattern 中:/.myWord/ 将不起作用。请需要帮助。非常感谢

更新:

我按照答案中的内容进行了所有操作,但它返回 wood,wood 而不是 wood ,我只想获得 1 个匹配项。就像使用例如 /.ood/ - 这只会返回 1 个匹配项。请帮忙

另外,我如何通过在我的输入文本中只有 od 来获得单词 wood。我只是想要这个用于搜索..

最佳答案

您可以使用 RegExp 将字符串用作正则表达式对象:

var myPattern = new RegExp('.'+myWord,'g'); 

Fiddle Example

在你的情况下做一个匹配,只需将 RegExp 中的第二个参数从 g 更改为 m (这意味着使一个每行匹配多行,但在这种情况下,字符串只是一行)。用于从 "ood""od""d" 或其他词中查找单词 "wood"个案。你可以这样做:

var myPattern = new RegExp("\\b\\w+"+myWord+"\\b",'m'); 

注意我在下面的评论中有一个解决方案,但这个更好。

\\b ...\\b 表示 word boundaries .基本上确保它匹配一个单词。然后 \\w 表示任何有效的“单词字符”。所以总的来说,正则表达式意味着(使用 myWord = "od"):

|word boundary| + (1 or more word characters) + "od" + |word boundary|

这将确保它匹配字符串中以字符 "od" 结尾的任何单词。或者在更一般的情况下,您可以这样做:

var myPattern = new RegExp("\\b\\w*"+myWord+"\\w*\\b",'m'); 

关于javascript - 如何在 javascript 中使用 String.match(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32430592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com