正则表达式删除数字和其他字符

Joe*_*len 1 javascript regex typescript

我想通过使用正则表达式从我的打字稿字符串中删除一些数字和字符.我想我很接近,但我错过了一些东西.

在这里,我有弦乐之王:

  1. [15620584560] - 产品名称(种类)
  2. [1256025] - 产品名称(测试+ 1)
  3. [12560255544220] - 产品名称

我想要的是什么:

产品名称

这是正在使用的正则表达式.

product_name = product_name.replace(/\[[0-9]+\]/,'');
Run Code Online (Sandbox Code Playgroud)

Wik*_*żew 5

你可以用

.replace(/^\s*\[[0-9]+]\s*-\s*|\s*\([^()]*\)\s*$/g, '')
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示

正则表达式匹配两个选项(用以下分隔|):

  • ^\s*\[[0-9]+]\s*-\s*:
    • ^ - 字符串的开头
    • \s* - 0+空格
    • \[ - 一个 [
    • [0-9]+ - 1+位数
    • ]- 一个]
    • \s*-\s* - -包含0+空格的字符
  • | - 要么
  • \s\([^()]*\)\s*$:
    • \s* - 0+空格
    • \( - 一个 (
    • [^()]*- 除了(和之外的0 + 字符)
    • \) - 一个 )
    • \s* - 0+空格
    • $ - 字符串结尾.

JS演示:

var strs = ['[15620584560] - product name (type)','[1256025] - product name (test+1)','[12560255544220] - product name'];
var reg = /^\s*\[[0-9]+]\s*-\s*|\s*\([^()]*\)\s*$/g;
for (var s of strs) {
  console.log(s, '=>', s.replace(reg, ''));
}
Run Code Online (Sandbox Code Playgroud)