下面的正则表达式是什么意思^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 09:13:33
下面的正则表达式是什么意思^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$

下面的正则表达式是什么意思^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$
下面的正则表达式是什么意思
^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$

下面的正则表达式是什么意思^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$
\D 表示非数字
\d 表示数字
{数字n} 表示前面的内容重复n次
?表示前面的内容出现零次或一次
() 括号用于分组,在匹配之后可以根据分组号获取匹配内容


这个是用来提取固定格式的字符串中的数字的,不知道你这个用来提取的是什么样的一个源内容,不好猜测是做哪方面的提取,大体的字符格式如下示例:
后面的内容你保存为 html 后,可以测试如下的字符串,可以提取到相应的数字:
a234ab234b2344
234ab234b2344
a234b234b2344
234b234b2344
1234567890


<html>
<head>
<script type="text/javascript">
function check()
{
    var str;
    str = document.getElementById("txtInput").value;
    if (str.match(/^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$/) == null)
    {
        alert("匹配失败");
        return;
    }
    alert("提取到如下三组数字:\n" + RegExp.$1 + "\n" + RegExp.$2 + "\n" + RegExp.$3);
}
</script>
</head>
<body>
    输入:<input type="text" id="txtInput" />
    <button type="button" onclick="check()">正则检查</button>
</form>
</body>
</html>