我试图编写代码,在第一个数字和文本块之后删除所有代码。你知道如何做到这一点。
string = '009EPMT18$MBS'
预期结果
string = '009EPMT'
答案 0 :(得分:0)
你需要正则表达式来做到这一点。它是许多语言中常见的字符串分析语法。有许多正则表达式可以做你想要的,这里是一个:
var myRegex = /^[0-9]+[a-zA-Z]+/;
^
表示搜索必须从字符串的开头开始
[0-9]
表示在开始之后,必须有0到9范围内的字符
+
表示必须有一个或多个先前条件,这意味着必须有一个或多个数字
[a-zA-Z]
表示在a到z或A到Z的范围内必须有任何字符。但这不包括重音字符和其他字母表中的字母。
在正则表达式上调用.exec(string)
会返回传递的字符串中找到的字符串数组。
答案 1 :(得分:-2)
你走在正确的轨道上,你的模式中缺少字母:
var s = '009EPMT18$MBS';
var result;
var m = s.match(/^\d+[A-Z]+/); // first numbers and uppercase text
if (m) result = m[0]; // result = "009EPMT"
正则表达式解释:字符串^
的开头后跟一个或多个数字\d+
,后跟一个或多个字母,从A到Z [A-Z]+
。请注意,小写字符不匹配。