【问题标题】:Typescript - extract string from Text containing symbols [duplicate]Typescript - 从包含符号的文本中提取字符串[重复]
【发布时间】:2021-04-13 23:50:19
【问题描述】:
原文
var serverData = "12345 - Hello How are you!"
var serverData_1 = "12 - Washington"
var otherData = "965 - FileData"
如何从这 3 个字符串中仅提取数字。
这样我就可以得到:
var server1 = "12345" from var serverData
var server2 = "12" from var serverData_1
var server3 = "965" from var otherData
【问题讨论】:
标签:
javascript
html
jquery
typescript
【解决方案1】:
您可以使用简单的正则表达式,例如:
var serverData = "12345 - Hello How are you!";
var serverData_1 = "12 - Washington";
var otherData = "965 - FileData";
console.log(/\d+/.exec(serverData)[0]);
console.log(/\d+/.exec(serverData_1)[0]);
console.log(/\d+/.exec(otherData)[0]);
【解决方案2】:
如果你总是有“ - ”,你可以使用 split 命令:
var server1 = serverData.split(" - ", 1);
【解决方案3】:
您可以使用正则表达式。
示例
var serverData = "12345 - Hello How are you!"
var serverData_1 = "12 - Washington"
var otherData = "965 - FileData"
var server1 = /\d+/.exec(serverData)[0]; //result "12345"
var server2 = /\d+/.exec(serverData_1)[0]; //result "12"
var server3 = /\d+/.exec(otherData)[0]; //result "965"
【解决方案4】:
如果字符串的结构总是以这种形式“NUMBER - TEXT”
你可以使用
var server1 = serverData.split(' - ')[0];
var server2 = serverData_1.split(' - ')[0];
var server3 = otherData.split(' - ')[0];
但如果你需要更通用的
var server1 = /\d+/.exec(serverData)[0];
var server2 = /\d+/.exec(serverData_1)[0];
var server3 = /\d+/.exec(otherData)[0];
【解决方案5】:
var serverData = "12345 - Hello How are you!";
var serverData_1 = "12 - Washington";
var otherData = "965 - FileData";
function getNumbers(txt) {
var numb = txt.match(/\d/g);
numb = numb.join("");
return numb;
}
console.log(getNumbers(serverData));
console.log(getNumbers(serverData_1));
console.log(getNumbers(otherData));
更多方法请参考:Extract a number from a string (JavaScript)