0

我需要一个正则表达式来根据下拉列表的值来验证表单。但是,该值是由 PHP 随机生成的(但始终是 2 位数字)。

它需要对“38|One Evening”有效。数字 38 将发生变化。到目前为止,我有

//return value of dropdown
var priceOption = $("#price_option-4").val();

//make sure it ends with "One Evening"
var oneEvening = priceOption.match(/^ * + 'One Evening' $/);

我认为只要后面跟着“一个晚上”就可以匹配任何字符串

4

5 回答 5

6

字符串不能与正则表达式一起使用,您应该只在正则表达式文字内写下您想要匹配的内容,不带引号。

   /^\d{2}\|One Evening$/.test(priceOption);
//  ^^^^^^                          Begins with two digits
//        ^^                        Escaped the | meta char.
//          ^^^^^^^^^^^^            Then until the end: One Evening    
于 2012-11-05T17:07:09.137 回答
1

为xx|一个晚上

/^\d{2}\|One Evening$/
于 2012-11-05T17:09:00.677 回答
1

只需使用

/^\d\d\|One Evening$/.test(priceOption);
于 2012-11-05T17:08:22.143 回答
0
/^.+?One Evening$/

打破它

// ^ starts with
// . any character
// + quantifier - one or more of preceding character
// ? non-greedy - ensure regex stops at One Evening.
// One Evening = literal text
// $ match end of string.

请注意,我的回答反映了匹配任何字符序列的要求,然后One Evening.

我认为您最好更加具体并确保您肯定有两个数字字符。

于 2012-11-05T17:15:48.460 回答
-1

如果可以,最好具体一点。尝试以下操作:

// <start of string> <2 digits> <|One Evening> <end of string>
/^\d{2}\|One Evening$/.test( priceOption );
于 2012-11-05T17:16:34.013 回答