Blame view

frontend/web/js/validation/src/additional/currency.js 1.28 KB
18b850c7   Administrator   Importers CRUD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
  /**
   * Validates currencies with any given symbols by @jameslouiz
   * Symbols can be optional or required. Symbols required by default
   *
   * Usage examples:
   *  currency: ["£", false] - Use false for soft currency validation
   *  currency: ["$", false]
   *  currency: ["RM", false] - also works with text based symbols such as "RM" - Malaysia Ringgit etc
   *
   *  <input class="currencyInput" name="currencyInput">
   *
   * Soft symbol checking
   *  currencyInput: {
   *     currency: ["$", false]
   *  }
   *
   * Strict symbol checking (default)
   *  currencyInput: {
   *     currency: "$"
   *     //OR
   *     currency: ["$", true]
   *  }
   *
   * Multiple Symbols
   *  currencyInput: {
   *     currency: "$,£,¢"
   *  }
   */
  $.validator.addMethod("currency", function(value, element, param) {
      var isParamString = typeof param === "string",
          symbol = isParamString ? param : param[0],
          soft = isParamString ? true : param[1],
          regex;
  
      symbol = symbol.replace(/,/g, "");
      symbol = soft ? symbol + "]" : symbol + "]?";
      regex = "^[" + symbol + "([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\.[0-9]{0,2})?|0(\\.[0-9]{0,2})?|(\\.[0-9]{1,2})?)$";
      regex = new RegExp(regex);
      return this.optional(element) || regex.test(value);
  
  }, "Please specify a valid currency");