Javascript 如何从给定的正则表达式中删除分隔符?

Javascript 如何从给定的正则表达式中删除分隔符?,javascript,regex,regex-group,Javascript,Regex,Regex Group,我的意见: str = "User-123" o/p: 另一项输入: str = "User 123"// current this works with my regex. o/p:如上所述 其他可能的投入: str = "User:123" str = "User/123" str = "User:123" 代码: 如果我有分隔符,上面的代码返回false,因为它找不到与分隔符匹配的代码。对于上面列出的所有场景,我希望返回true 目前它只删除空白,如何从这个正则表达式中删除分隔符?

我的意见:

str = "User-123" 
o/p:

另一项输入:

str = "User 123"// current this works with my regex.
o/p:如上所述

其他可能的投入:

str = "User:123"
str = "User/123"
str = "User:123"
代码:

如果我有分隔符,上面的代码返回false,因为它找不到与分隔符匹配的代码。对于上面列出的所有场景,我希望返回true


目前它只删除空白,如何从这个正则表达式中删除分隔符?

看起来您只想在非字母数字字符上拆分:

let输入=[
“用户:123”,
“用户/123”,
“用户:123”,
“用户-123”,
“用户123”
]
(一)输入{
let[name,id]=i.split(/[^a-z0-9]/i)
日志(“名称:”,名称,“id:”,id)

} /代码> 你可以考虑简化你的表达方式。使用捕获组,您只需添加/删除所需的任何分隔符。例如,演示了如何使用捕获组:

([A-z]+)(:|\/)([0-9]+)

图表 此图显示了表达式的工作方式:

代码 这段代码展示了如何做到这一点,并做了一个重复100万次的基本基准测试

repeat=1000000;
开始=日期。现在();
对于(变量i=repeat;i>=0;i--){
变量字符串='User/123';
var regex=/([A-z]+)(:\/)([0-9]+)/g;
var match=string.replace(regex,“$1$3”);
}
end=Date.now()-start;

console.log(match+“是一个匹配项,您所说的“分隔符”是什么意思?这是一个字符列表吗?第一个和第三个“可能的输入”是相同的。是否要拆分任何用户名(a-Z)和ID(0-9),无论输入是否包含空格、
-
?分隔符可以是我的任何内容(:,,,,,,,,,,,,,,,=,+答案基本上是一个非字母数字的charsthanks@mark,我不确定是否可以创建一个输入字符串数组,分隔符可以是任何东西(:,,,/,?,=,+,)它们无法预定义。我不认为创建一个输入数组可以解决这个问题。@user1234我创建了一个输入数组,以便于在循环中的所有潜在输入上演示正则表达式,而不是一次演示一个。
let[name,id]=I.split(/[^a-z0-9]/I)
使用一个名为
i
的输入,并从输入中为您提供一个
名称
id
let m = value.match(/([a-z]+\s*\d+)\s+([a-z]+\s*\d+|\d+\s*[a-z]+)/i);
if (m) {return true}
else {return false}
([A-z]+)(:|\/)([0-9]+)