gpt4 book ai didi

javascript - 困惑为什么我的正则表达式不起作用?

转载 作者:行者123 更新时间:2023-12-02 22:51:19 25 4
gpt4 key购买 nike

尝试创建一个正则表达式,该表达式在“,”和“\n”处分割字符串,然后传入自定义分隔符(在我的代码中由firstChar表示)。

传入字符串的格式:{分隔符}\n{数字}。我在线使用过 regex101,它似乎可以在那里工作,但在我的实际代码中,它不会在自定义分隔符处拆分,所以不确定我做错了什么。

if (str.includes('\n')) {
let firstChar = str.slice(0, 1);
if (parseInt(firstChar)) {
strArr = str.split(/,|\n/) ;
} else {
strArr = str.split(/[,|\n|firstChar]/);
}
}

预计 ';\n2;5' 等于 7,但由于某种原因我的数组分成了 [";", "2;5"]。

最佳答案

你的第一个字符不是数字,所以你直接进入 else 条件,如果你想要一个动态正则表达式,那么你需要使用 RegExp 构建它

这里也不需要 Angular 色类

/[,|\n|firstChar]/

应该是

/,|\n|firstChar/
<小时/>

let splitter = (str) => {
if (str.includes('\n')) {
let firstChar = str.slice(0, 1);
if (parseInt(firstChar)) {
return str.split(/,|\n/);
} else {
let regex = new RegExp(`,|\\n|\\${firstChar}`, 'g') // building a dynamic regex here
return str.split(regex).filter(Boolean)
}
}

}

console.log(splitter(";\n2;5"))
console.log(splitter("*\n2*5"))

关于javascript - 困惑为什么我的正则表达式不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58178319/

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