我有这段代码:
<!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以达到此目的吗?
答案 0 :(得分:2)
您可以使用\d
来匹配数字,并使用{5}
指定您选择的长度。然后,单词边界(\b
)确保您附近没有其他数字匹配:
答案 1 :(得分:0)
对于您的特定用例,您可以使用\b(\d{5})\b/g
捕获捕获组中的所需值。否则,匹配的值将具有空格。
答案 2 :(得分:0)
解决方案:
<!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;