[英]Javascript Regular Expression matching
通过使用此处的模式,我想检查用户在#id_phone文本输入字段中填写的时间,如果与该模式匹配,请使用#id_phone的值来填充#id_new_phone的值。 这似乎对我不起作用。
$('#id_phone').change(function() {
var myPattern = new RegExp(^0\(5\d{2}\) \d{3} \d{2} \d{2}$);
var myStr = $("#id_phone").val();
if ( myStr.match(myPattern) ){
$('#id_new_phone').val(myStr);
}
});
可能是什么问题?
您需要将(^0\\(5\\d{2}\\) \\d{3} \\d{2} \\d{2}$)
放在引号内,并且如果要使用则需要转义反斜杠。 RegExp
,而不是/ /
"^0\\(5\\d{2}\\) \\d{3} \\d{2} \\d{2}$"
而且myPattern.test(myStr)
比使用.match
更可取,因为.match
返回一个您实际上不需要的数组。
var myPattern = new RegExp("^0\(5\d{2}\) \d{3} \d{2} \d{2}$");
使用RegExp()时应引用该模式;
另外,它也不是有效的正则表达式,因为如果您不想引用它,则应使用正则表达式构造。 例如:
var myregex = /<some pattern here>/g
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.