繁体   English   中英

Javascript正则表达式匹配

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM