我在ASP.NET MVC5上有一个简单的计算器,前端在HTML \ CSS \ Javascript上。 在按钮的事件处理程序中,我将所有值连接到字符串中,并希望检查其是否满足正则表达式。但是,例如,如果我将以下值放入计算器:“ 99 * 66-”,则下面的代码每次都返回null。
这里的正则表达式可以正常工作:https://regex101.com/r/AxMvPe/1
整个代码:https://jsfiddle.net/0g79hkbc/
var regEx = /[+-]?([0-9]*[,])?[0-9]+[-+\/*][0-9]*[,]?[0-9]+[-+\/*]/; //in case if problems will appear https://regex101.com/
$('.button').on('click', function () {
var buttonText = this.innerHTML;
var inputedText = inputElement.innerHTML + buttonText;
console.log(inputedText.match(regEx));
});
我尝试了以下选项,但没有帮助:
我还尝试手动输入“ 99 * 66-”,然后将inputedText与javascript字符串“ 99 * 66-”进行比较,它也返回false。为什么?
答案 0 :(得分:0)
对我来说很好,除了例如99*
时它不匹配。您将需要重复的一组正则表达式,例如:https://regex101.com/r/AxMvPe/2
向其中添加了彩车:)
var regEx = /[+-]?([0-9]*[,])?[0-9]+[-+\/*][0-9]*[,]?[0-9]+[-+\/*]/; //in case if problems will appear
inputElement = $('#input');
$('.button').on('click', function () {
var buttonText = $(this).val();
var inputedText = inputElement.val() + buttonText;
console.log(inputedText.match(regEx));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id='input' type='text' value='99*66' />
<input class='button' type='button' value='-'/>