涉及使用正则表达式的Javascript函数

涉及使用正则表达式的Javascript函数,javascript,regex,Javascript,Regex,我允许用户通过表单字段输入框的尺寸。允许值为: 正整数 必须以px或%s结尾 样本有效数字为300px或70% 此外,我还想添加一些额外的验证逻辑: 如果输入的值以百分比表示,则数字必须在0>x的范围内。所需的正则表达式为: var r = new RegExp("^\\s*(\\d+(?:\\.\\d+)?)\\s*(px|%)?\\s*$"); 这句话的意思是: 允许前导和尾随空格(\s) 数字是一个或多个数字,可选地后跟一个句点和一个或多个数字 单位可以是“px”、“%”或省略 您需

我允许用户通过表单字段输入框的尺寸。允许值为:

  • 正整数
  • 必须以px或%s结尾
  • 样本有效数字为300px或70%

    此外,我还想添加一些额外的验证逻辑:


    如果输入的值以百分比表示,则数字必须在0>x的范围内。所需的正则表达式为:

    var r = new RegExp("^\\s*(\\d+(?:\\.\\d+)?)\\s*(px|%)?\\s*$");
    
    这句话的意思是:

    • 允许前导和尾随空格(
      \s
    • 数字是一个或多个数字,可选地后跟一个句点和一个或多个数字
    • 单位可以是“px”、“%”或省略
    您需要手动检查输入的号码

    var match = r.exec("93px");
    var number = parseFloat(match[1]);
    var symbol = match[2];
    if (symbol == "px") {
      // validate number as a pixel
    } else if (symbol == "%") {
      // evaluate as percentage
    } else {
      // no symbol was entered
    }
    
    var match = r.exec("93px");
    var number = parseFloat(match[1]);
    var symbol = match[2];
    if (symbol == "px") {
      // validate number as a pixel
    } else if (symbol == "%") {
      // evaluate as percentage
    } else {
      // no symbol was entered
    }