我需要根据javascript中的正则表达式验证文本。我的正则表达式工作正常,但无法找出它在java脚本中不起作用的原因。
正则表达式为^([-+/*]\d+(\.\d+)?)*
有效表达式为+7
或+9.36*8
或+4-9.3/5.0
无效匹配为test
或8.36
这是代码,
var ck_diffrentialformula = /^([-+/*]\d+(\.\d+)?)*/;
function radtxtbxLinkedDifferentialFormulaOnBlur(sender, eventArgs) {
if (sender.get_value().length > 0) {
var entered_value = sender.get_value();
if (ck_diffrentialformula.test(entered_value)) {
alert('Text Matches');
}
else {
alert('Text does not match');
}
}
}
sender.get_value() - gives the text box value over here.
请告诉我我在哪里做错了。
答案 0 :(得分:2)
我假设你正在使用这样的东西:
<input type="text" onchange="radtxtbxLinkedDifferentialFormulaOnBlur(this,null)" />
sender
没有方法.get_value()
,因此甚至不起作用。取而代之的是,似乎有效。
function radtxtbxLinkedDifferentialFormulaOnBlur(sender, eventArgs) {
console.log(sender)
if (sender.value.length > 0) {
console.log(sender.value);
if (ck_diffrentialformula.test(sender.value)) {
console.log('Text Matches');
}
else {
console.log('Text does not match');
}
}
}
答案 1 :(得分:1)
也许你想试试这个表达:/^([\-+\/*]\d+(\.\d+)?)*$/
它在正则表达式中逃避“ - ”和“/”(jsbin建议),并考虑整个字符串($
在最后)。