regex - 获取两个字符之间的数字 - 打字稿
问题描述
我是 Typescript 的新手,并试图在我的 Google Cloud Functions 中创建一个 webhook。
我有一个字符串:C1234567890A460450P10TS1596575969702
我想使用正则表达式1234567890
从该字符串中提取数字。第一个字符C
是固定不变的,A
数字后面的字符是可变的,可以是任何其他字母。
与数字匹配的正则表达式是(?<=C)(\d{10})(?=\w)
.
我想知道如何在 Typescript 中执行这个正则表达式,以便我可以将数字放入变量中(例如const number = [the number extracted from the string] //value 1234567890
:)
编辑1:
根据提供的建议(在发布此问题之前我已经尝试过),这是我可以从中得出的代码:
const string = request.body.string;
let regxp = new RegExp('(?<=C)(\d{10})(?=\w)');
const number = regxp.exec(string);
response.send(number);
这给出了空白响应。
解决方案
有两个问题,你从来没有将返回的字符串解析为一个数字,parseInt
并且(?<=C)
并不总是支持 (positive lookbehind)。
其次,您的正则表达式可以简化为^C\d{10}
并.splice(1)
删除C
.
const string: string = request.body.string;
const matches = s.match(/^C\d{10}/);
let number: number;
if(matches !== null) {
number = parseInt(matches[0].slice(1));
} else {
res.status(400).end(); // Assuming this is express
return;
}
res.send(number); // 1234567890
推荐阅读
- maven - maven 战争覆盖不会排除依赖关系
- powershell - 使用 x.509 证书下载带有 powershell 的网页
- microsoft-graph-api - 使用 Graph API 在 Sharepoint 中创建文件夹时出错
- python-3.x - 带有python 3 messages().send()的gmail python api获取json序列化错误
- facebook - 为什么 Instagram Basic Display api 不是身份验证解决方案
- azure - Azure AD B2C -> OAuth2 -> Azure Function App 令牌交换
- oracle - Alter/Evolve 类型用户定义的构造函数签名 (PL/SQL)
- java - Apache Camel quartz2 计时器启动多个交换
- python - 如何将 .predict(x) 方法的结果中的元素与另一个数组中的元素匹配并输出?
- css - CSS似乎认为:不覆盖它之后的东西?