Javascript正则表达式以普通数字或以百分比结尾的数字

时间:2015-03-11 13:39:30

标签: javascript regex

我需要一个正则表达式,它只验证普通数字或以百分比结尾的数字。我尝试过以下方法:

/(?!\%$)(\D)/

我相信我会相信除了结束百分号之外的任何非数字。当我测试它时,无论如何它总是会返回相同的结果:

http://jsfiddle.net/zow37wLq/1/

3 个答案:

答案 0 :(得分:1)

这个正则表达式应该有效:

/^\d+%?$/

ohaal 找出了问题所在,但为什么要搜索不匹配的所有内容而不是搜索什么内容?

答案 1 :(得分:1)

错误在于您的代码,而不是您的正则表达式。请参阅代码中的第9行:

// Set New Image Width
$('#photo-width').on('input', function () {
    var newWidth = $('#photo-width').attr('value'),
        // attempted regex to find any non-digits excluding an ending percent.
        reg = /(?!\%$)(\D)/,
        charTest = reg.test(newWidth);

    // if formatting is incorrect
    if (charTest = true) { // <-------------------------- THIS
        $('.debug').html('<b>Result</b> Please enter only numbers or percents.');
    // if formatting is OK
    } else {
        $('.debug').html('<b>Result</b> Looks OK');
    }
});

该行必须是if (charTest == true) {

See updated jsfiddle

答案 2 :(得分:-1)

试试这个: [0-9] +((PX {1} |%{1}))

我通常会在以下网站中测试我的正则表达式:

https://www.debuggex.com/