gpt4 book ai didi

javascript - Javascript 正则表达式元字符在括号内不起作用?

转载 作者:行者123 更新时间:2023-11-30 13:20:59 26 4
gpt4 key购买 nike

我正在尝试构建一个 javascript 函数来将一个类名替换为另一个类名。当我使用像

这样的功能时
function foo(bar)
{
bar.className=bar.className.replace(/\bone/, "two");
}​

像这样的标记

<div class="one" onclick="foo(this)"></div>​

它正确地找到了 one 并将其替换为 two。但是,当我使用括号来包含可能在 one 之前的其他字符时,\b 无法识别字符串的开头,并且没有给出匹配项。示例:

function foo(bar)
{
bar.className=bar.className.replace(/[\b\s]one/, "two");
}​

没用。甚至 /[\b]one/ 都不起作用。

参见 http://jsfiddle.net/E4ph5/看到它在行动。我究竟做错了什么? (在 fiddle 中,如果您删除括号,脚本将正常工作。)

最佳答案

括号定义了一个字符类。在这样的类中,\b(单词边界)等标记不起作用,因为它们在那里没有意义。

/\bone/ 无论如何在你的情况下都很好 - 空格也是一个单词边界:http://jsfiddle.net/ThiefMaster/Z8HTE/ - 您可以通过使用 /\bone\b/ 来改进它以避免匹配,例如class="onetwothree"

关于javascript - Javascript 正则表达式元字符在括号内不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10269428/

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