Javascript 正则表达式-仅获取文本/数字和其他
我有一些字符串需要应用正则表达式来重新格式化 以下是一些例子:Javascript 正则表达式-仅获取文本/数字和其他,javascript,regex,Javascript,Regex,我有一些字符串需要应用正则表达式来重新格式化 以下是一些例子: 树木日志和火灾(TLF) 离开 River Moon(RM) 大小写、间距和格式正是字符串的显示方式 我的目标是将其转化为以下内容: tree log fire 离开 river moon 正如您可能注意到的,&不见了,任何在末尾有(xx)的字符串都被丢弃了 我正在使用JavaScript.replace()并尝试加入一个匹配(),但它不起作用 示例代码: let newString = oldString .match(/
树木日志和火灾(TLF)
离开
River Moon(RM)
大小写、间距和格式正是字符串的显示方式
我的目标是将其转化为以下内容:
tree log fire
离开
river moon
正如您可能注意到的,&
不见了,任何在末尾有(xx)
的字符串都被丢弃了
我正在使用JavaScript.replace()
并尝试加入一个匹配()
,但它不起作用
示例代码:
let newString = oldString
.match(/[^]+(?=\s\()/)
.replace(/[^A-Z0-9]+/ig, '-')
从理论上讲,这是可行的,但我似乎无法将.replace链接到.match。另外,我更喜欢一行正则表达式。我一直在尝试组合,但我知道在正则表达式方面可能有人比我聪明一点
谢谢你的帮助 这可能不是最有效的方法,但是
let str=“树日志和火灾(TLF)”;
str=str.replace(/\([^()]*\)/,“”)
.replace(/[^A-Z0-9]+/ig,'-')。replace(/\-$/,'').toLowerCase();
console.log(str)代码>如果存在匹配项,则返回数组。因此,要获得匹配的组,您必须在调用.replace()
之前对.match()
的结果使用[0]
go('Tree Log&Fire(TLF));
走(‘叶’);
围棋(“月亮河(RM)”;
函数go(oldString){
var newString=oldString
.match(/[^]+(?=(\s\())。+/)[0]//您不能将replace
链接到match
match
返回一个数组,而replace
在字符串上操作谢谢,这很有帮助!请尝试s.split(/^a-Za-z()]+[^()]*)/).filter(布尔)。map(函数(x){return x.toLowerCase())。join(“-”)
谢谢@acdcjunior,我错过了那个额外的正则表达式和[0]
!它现在正在做它应该做的事情!