我需要一个正则表达式来根据下拉列表的值来验证表单。但是,该值是由PHP随机生成的(但总是一个2位数字)。
它必须对“38 |一个晚上”有效。数字38是将要改变的。到目前为止,我有
//return value of dropdown
var priceOption = $("#price_option-4").val();
//make sure it ends with "One Evening"
var oneEvening = priceOption.match(/^ * + 'One Evening' $/);
我认为只要它跟随“一个晚上”
就会匹配任何字符串答案 0 :(得分:6)
字符串不能与正则表达式一起使用,你应该在正则表达式文字中写下你想匹配的\ test,而不是引号。
/^\d{2}\|One Evening$/.test(priceOption);
// ^^^^^^ Begins with two digits
// ^^ Escaped the | meta char.
// ^^^^^^^^^^^^ Then until the end: One Evening
答案 1 :(得分:1)
只需使用
/^\d\d\|One Evening$/.test(priceOption);
答案 2 :(得分:1)
for xx | One Evening
/^\d{2}\|One Evening$/
答案 3 :(得分: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
。
我认为你可能会更加具体,确保你肯定有两个数字字符。
答案 4 :(得分:-1)
如果可以的话,最好具体一点。请尝试以下方法:
// <start of string> <2 digits> <|One Evening> <end of string>
/^\d{2}\|One Evening$/.test( priceOption );