JavaScript Regex查找匹配起始和结束模式的所有子字符串

时间:2014-12-11 14:16:26

标签: javascript html regex string

我想要一个Javascript正则表达式,在给定的字符串中找到所有以特定字符开头并以特定字符结尾的子字符串。 返回的subStrings集可以是一个Array。 例如 STRING:

Body<input value="CourseName" class="emailButtonSnip" type="button"><input value="CourseDescription" class="emailButtonSnip" type="button"><input value="CourseEnrollmentDeadline" class="emailButtonSnip" type="button">"

开始char = "<input" 结束char = ">"

输出:

<input value="CourseName" class="emailButtonSnip" type="button">
<input value="CourseDescription" class="emailButtonSnip" type="button">
<input value="CourseEnrollmentDeadline" class="emailButtonSnip" type="button">

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式来执行此操作:

var string = 'Body<input value="CourseName" class="emailButtonSnip" type="button"><input value="CourseDescription" class="emailButtonSnip" type="button"><input value="CourseEnrollmentDeadline" class="emailButtonSnip" type="button">';

var re = /\<input.*?\>/ig
var match;
while ((match = re.exec(string)) != null){
  console.log(match[0]);
}

产地:

<input value="CourseName" class="emailButtonSnip" type="button">
<input value="CourseDescription" class="emailButtonSnip" type="button">
<input value="CourseEnrollmentDeadline" class="emailButtonSnip" type="button">

然而,正如评论中指出的那样,这可能不是最好的主意。

修改(根据您在评论中的要求):

var string = 'Body<input value="CourseName" class="emailButtonSnip" type="button"><input value="CourseDescription" class="emailButtonSnip" type="button"><input value="CourseEnrollmentDeadline" class="emailButtonSnip" type="button">';

var re = /\<input.*?\>/ig
var match;
while ((match = re.exec(string)) != null){
  var input = match[0],
      re1 = /value="(.*?)"/ig;
  console.log(re1.exec(input)[1]);
}

产地:

CourseName
CourseDescription
CourseEnrollmentDeadline

你当然可以直接匹配原始字符串中的值,但由于我不知道你要做什么,我会留下这样的。

答案 1 :(得分:0)

<[^>]+>

你可以尝试一下。参见演示。

https://regex101.com/r/eZ0yP4/11