首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JScript Regex -用子字符串提取带分隔器的10位增值税数字

JScript Regex -用子字符串提取带分隔器的10位增值税数字
EN

Stack Overflow用户
提问于 2020-11-15 19:19:35
回答 1查看 95关注 0票数 1

我需要提取由10位数字组成的增值税号码,由一个破折号分隔,空格或不分隔,并由子字符串“增值税”进行操作。增值税号码从来不以零开头,后面总是有空格。

代码语言:javascript
复制
reg = new RegExp('[\d -]{10}\\s','ig');
str = ('sdfgzdfvzdfv/9/2020 VAT Invoice 16-09-2020 Citsxc zzzzw34  224- Iscvcge date 16.09.2020 VAT Terms 34 of payment:  123-456-78-90 *')
expected result: '123-456-78-90'

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-17 20:59:51

你可以用

代码语言:javascript
复制
var rx  = RegExp('VAT.*?([1-9](?:[\\s-]?\\d){9})(?!\\S)','i');

regex演示。详细信息:

  • VAT -一个VAT子字符串
  • .*? -除换行字符以外的任何0+字符,尽可能少。
  • ([1-9](?:[\s-]?\d){9}) -第1组:
    • [1-9] -一个非零的数字
    • (?:[\s-]?\d){9} -9出现空格或连字符,然后出现数字。

  • (?!\S) -一个右手的空白边界.

JScript代码演示:

代码语言:javascript
复制
var rx  = RegExp('VAT.*?([1-9](?:[\s-]?\\d){9})(?!\\S)','i');
var string=('sdfgzdfvzdfv/9/2020 VAT Invoice 16-09-2020 Citsxc zzzzw34 224- Iscvcge date 16.09.2020 VAT Terms 34 of payment123-456-78-90 ');
var m = string.match(rx);
if (m) {
  WScript.Echo(m[1]);
} else {
  WScript.Echo("No match!");
}

输出:123-456-78-90

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64848792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档