gpt4 book ai didi

Javascript str.split(/[^a-zA-Z0-9.@]|(username|fname)/不从字符串中删除 'username' 或 'fname'

转载 作者:行者123 更新时间:2023-12-01 00:34:46 25 4
gpt4 key购买 nike

我的程序中有一个简单的查询字符串:

?username=someone@email.com&fname=

我想出了一个正则表达式,它可以选择除我想要的数据之外的所有内容:

[^a-zA-Z0-9.@]|(用户名|fname)

我正在尝试使用 javascripts str.split() 来分割查询中实际上不是数据的所有内容,如下所示:

let userinfo = global.location.search.split(/[^a-zA-Z0-9.@]|(username|fname)/).filter(Boolean);

不幸的是,当它运行时,我得到以下数组:

['用户名', 'someone@email.com', 'fname']

我期望只是['someone@email.com'],因为“username”和“fname”应该从我的正则表达式中拆分出来。

我已经在 https://regex101.com/ 中对此进行了测试它看起来工作正常,所以我不确定为什么它在 JS 中不起作用。

有什么想法吗?

最佳答案

当您在与 .split() 一起使用的正则表达式中有一个捕获组时,捕获的字符串将包含在结果数组中。

如果您需要一个组,但不想将其包含在结果中,请使用非捕获组(?:username|fname)

但在这种情况下根本不需要该组。 /xxx|(yyy|zzz)//xxx|yyy|zzz/ 匹配相同的内容,它们仅在捕获的内容上有所不同。

/[^a-zA-Z0-9.@]|username|fname/

关于Javascript str.split(/[^a-zA-Z0-9.@]|(username|fname)/不从字符串中删除 'username' 或 'fname',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58227303/

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