gpt4 book ai didi

javascript - 用于数字验证的正则表达式

转载 作者:行者123 更新时间:2023-11-30 11:51:44 25 4
gpt4 key购买 nike

我需要有允许负号、百分号和小数的文本区域(或输入)。即 3000、-3.5、50%、-50.5% - 全部有效。
我找到了 this example并将正则表达式调整为

/^[\-]?[0-9]+\.?[0-9]*[%]{0,1}$/

我的问题是我无法在输入数字之前添加负号。

我的代码是:

$(function() {
var pastValue, pastSelectionStart, pastSelectionEnd;

$("textarea.aaa").on("keydown", function() {
pastValue = this.value;
pastSelectionStart = this.selectionStart;
pastSelectionEnd = this.selectionEnd;
}).on("input propertychange", function() {
var regex = /^[\-]?[0-9]+\.?[0-9]*[%]{0,1}$/;

if (this.value.length > 0 && !regex.test(this.value)) {
this.value = pastValue;
this.selectionStart = pastSelectionStart;
this.selectionEnd = pastSelectionEnd;
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea name="myText" class="aaa" /></textarea>

最佳答案

片段中使用的正则表达式也允许减号。用户只能在开始时添加一次减号。您可以在按键事件中使用它,也无需仅在提交时使用它。请检查代码段以获得更多理解。

$(function() {
var pastValue, pastSelectionStart, pastSelectionEnd;

$("textarea.aaa").on("keydown", function() {
pastValue = this.value;
pastSelectionStart = this.selectionStart;
pastSelectionEnd = this.selectionEnd;
}).on("input propertychange", function() {
var regex = /^-?\d*\.?\d{0,6}$/;

if (this.value.length > 0 && !regex.test(this.value)) {
this.value = pastValue;
this.selectionStart = pastSelectionStart;
this.selectionEnd = pastSelectionEnd;
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea name="myText" class="aaa" /></textarea>

关于javascript - 用于数字验证的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39247001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com