javascript - 将正则表达式转换为简单数组

标签 javascript arrays regex

我在 JavaScript 中有一个正则表达式,如下所示:

var regex = /(\d{2,3})(\D{1,2})(\d{1,8})/;

应以 2 或 3 位数字显示第一部分,然后是 1 到 2 个非数字字符,然后是 1 到 8 位数字 形成如下所示的内容:45ER12345

我的问题是如何将其转换为一个包含变量的数组(一个长数组,没有复杂的 (\d{2.3}) 内容,这对初学者编码员来说是有利的。)

    var regex = /(\d{2,3})(\D{1,2})(\d{1,8})/;
    var stringBits = regex.exec(form.cname.value);
    //This ties the variables to the text below that will appear in an alert box
    alert("Hello " + form.fname.value + ". Your car's year is " + stringBits[1] + " and your county is " + stringBits[2] + " the car number is " + stringBits[3] );
    return true; // Form is good / processing successfully complete
}

这是我写的。图中看不到的是用户输入姓名和汽车注册号的 2 个输入框。结果应该像第一个示例中所示解析汽车注册表并将其显示在一个框中。

我一直在使用的正则表达式完全符合我想要的功能,但我只想将其转换为一个更简单的数组,而不包含初学者不会使用的所有复杂符号。

最佳答案

你的正则表达式似乎没问题,你只是在寻找String#match(regex):

var regex = /(\d{2,3})(\D{1,2})(\d{1,8})/;
var s = '45ER12345';
var m = s.match(regex);
//=> ["45ER12345", "45", "ER", "12345"]

关于javascript - 将正则表达式转换为简单数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23480260/

相关文章:

java - 将数组作为参数传递给类

JavaScript 正则表达式 : Match additionals based on path delimiter

ios - 正则表达式从字符串中获取字符串

javascript - 制作 "Mark all"按钮

php - 可能的词组

javascript - 如何使用普通 Javascript 识别一系列无序列表和/或嵌套列表中的上一个/下一个链接?

arrays - 比较不在循环中的向量的所有元素

regex - 在 "> 和 </pattern 中提取字符串

javascript - raphaelJS 2.1 沿路径设置动画

javascript - ng-repeat 指令中的 Angular 选择 : how can I access the children scopes?