匹配正则表达式中的多个输入值

时间:2010-09-03 17:11:07

标签: javascript html regex

我有以下输入值,我希望有人可以告诉我匹配所有“值”的最佳方法(217,218,219) - html被转义,这就是我需要匹配的东西。

<input type=\"hidden\" name=\"id\" value=\"217\"\/>

<input type=\"hidden\" name=\"id\" value=\"218\"\/>

<input type=\"hidden\" name=\"id\" value=\"219\"\/>

2 个答案:

答案 0 :(得分:4)

根据您对其他回复的评论,您实际上只想匹配数字name=\"id\" value=\"###\",因此有四种可能性,具体取决于您希望匹配的精确程度。另外,根据您的评论,我使用javascript作为实现语言。

另请注意,上一个答案错误地转义了id和值字符串周围的斜杠。

FWIW,我测试了以下每个选项:

选项1:匹配任何数字

//build the pattern
var pattern = /name=\"id\" value=\"([0-9]+)\"/g

//run the regex, after which:
//  the full match will be in array_matches[0]
//  the matching number will be in array_matches[1]
var array_matches = pattern.exec(strVal);

选项2:匹配任何3位数字

//build the pattern
var pattern = /name=\"id\" value=\"([0-9]{3})\"/g

//run the regex, after which:
//  the full match will be in array_matches[0]
//  the matching number will be in array_matches[1]
var array_matches = pattern.exec(strVal);

选项3:匹配特定的3位数字范围

//build the pattern; modify to fit your ranges
//  This example matches 110-159 and 210-259
var pattern = /name=\"id\" value=\"([1-2][1-5][0-9])\"/g

//run the regex, after which:
//  the full match will be in array_matches[0]
//  the matching number will be in array_matches[1]
var array_matches = pattern.exec(strVal);

选项4:匹配特定的3位数字

//build the pattern; modify to fit your numbers
//  This example matches 217, 218, 219 and 253
var pattern = /name=\"id\" value=\"(217|218|219|253)\"/g

//run the regex, after which:
//  the full match will be in array_matches[0]
//  the matching number will be in array_matches[1]
var array_matches = pattern.exec(strVal);

答案 1 :(得分:1)

我不知道用什么语言,但假设您显示的代码是一个字符串(因为您转义了所有引号),您可以将该字符串传递到以下匹配任何数字序列的正则表达式。

/([0-9]+)/g

根据您使用的语言,您需要移植此正则表达式并使用正确的函数。

在JS中你可以使用:

var array_matches = "your string".match(/([0-9]+)/g);

在PHP中你可以使用:

preg_match("([0-9]+)", "your string", array_matches);