JavaScript的;正则表达式只有5位数的字符串并排

时间:2017-09-24 15:02:16

标签: javascript jquery html regex

我有这段代码:

<!DOCTYPE html>
<html>
    <head>
        <script>
            window.onload = function() {
                var src = document.getElementById("one"),
                    dst = document.getElementById("two");
                src.addEventListener('input', function() {
                    dst.value = src.value.replace(/\D/g,'');
                });
            };
        </script>
    </head>
    <body>
    
        <input type="text" id="one" name="one">
        <input type="text" id="two" name="two">
    
    </body>
</html>

这将删除one中不是数字的所有内容并插入two

但我想只保留一串五位数字。

意味着,如果one是:

test 1 test 1234 test;没有输出

test 1 12345 test;输出12345

test 123456 test 12 test;没有输出

12394 test;输出12394

84725;输出84725

有人知道如何更改REGEX以达到此目的吗?

3 个答案:

答案 0 :(得分:2)

您可以使用\d来匹配数字,并使用{5}指定您选择的长度。然后,单词边界(\b)确保您附近没有其他数字匹配:

/\b\d{5}\b/g

答案 1 :(得分:0)

对于您的特定用例,您可以使用\b(\d{5})\b/g捕获捕获组中的所需值。否则,匹配的值将具有空格。

答案 2 :(得分:0)

解决方案:

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
<script>
	window.onload = function() {
		var src = document.getElementById("one"),
		dst = document.getElementById("two");
		src.addEventListener('input', function() {
			dst.value = src.value.match(/\b\d{5}\b/g);
});
};
</script>
</head>
<body>

<input type="text" id="one" name="one">
<input type="text" id="two" name="two">

</body>
</html>
&#13;
&#13;
&#13;