繁体   English   中英

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

[英]Regex to remove numbers and others characters

我想使用正则表达式从打字稿字符串中删除一些数字和字符。 我想我已经接近了,但是我想念一些东西。

这是我拥有的弦乐之王:

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

我想要的是:

产品名称

这是我正在使用的正则表达式。

product_name = product_name.replace(/\[[0-9]+\]/,'');

您可以使用

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

正则表达式演示

正则表达式匹配两个替代项(用|分隔):

  • ^\\s*\\[[0-9]+]\\s*-\\s*
    • ^ -字符串的开头
    • \\s* -0+空格
    • \\[ -一个[
    • [0-9]+ -1+个数字
    • ] -一个]
    • \\s*-\\s* -一-焦附带0+空格
  • | - 要么
  • \\s\\([^()]*\\)\\s*$
    • \\s* -0+空格
    • \\( -一个(
    • [^()]* - ()以外的0+个字符
    • \\) -a )
    • \\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, '')); } 

一种可行的方法是在破折号上分割输入字符串,然后使用简单的正则表达式删除括号中的所有术语:

 var input = '[15620584560] - product name (type)'; var fields = input.split(/\\]\\s*-/); var result = fields[1].replace(/\\s*\\(.*?\\)\\s*/g, '').trim(); console.log(result); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM