npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ind-utils-pro

v1.2.0

Published

A comprehensive, production-ready Indian utility library with 110+ regex patterns and 105+ validation/formatting methods

Downloads

17

Readme

🇮🇳 Ind-Utils-Pro

A comprehensive, production-ready Indian utility library with 110+ regex patterns, 105+ validation/formatting methods, and zero dependencies for modern JavaScript applications.

Author: Dhruv Gorasiya
License: MIT
Framework Agnostic: React • Vue • Angular • Node.js • Vanilla JS • Svelte • Next.js • Nuxt


📊 Quick Feature Matrix

| Feature | Count | Examples | |---------|-------|----------| | 🆔 Government IDs | 9 | PAN, GST, Aadhar, Passport, DL, Voter ID | | 🏦 Banking & Finance | 9 | IFSC, MICR, Account, SWIFT, IBAN, Cards | | 📞 Contact & Location | 8 | Mobile, Email, Pincode, Address, Coordinates | | 🌐 Internet & Web | 7 | URL, IPv4, IPv6, Email, JWT, Base64 | | 🚗 Vehicles | 6 | Registration, VIN, Chassis, Engine Number | | 💼 Business & Corporate | 6 | License, Trademark, Patent, FSSAI, Udyam | | 💳 Financial Instruments | 7 | Credit Card, Debit Card, CVV, IBAN, Currency | | 📊 Documents & Codes | 8 | Invoice, Bill, PO, Tracking, Barcode, QR | | 📅 Date & Time | 6 | Multiple formats + ISO timestamp | | 🔤 Text & Format | 20+ | Alphanumeric, Slug, Color, Percentage, etc. | | 📱 Social Media | 6 | Twitter, Instagram, Facebook, YouTube | | 💰 Currency Formatters | 40+ | INR, USD, EUR, GBP, JPY, AUD, CAD, SGD, HKD |


🚀 Installation

# npm
npm install ind-utils-pro

# yarn
yarn add ind-utils-pro

# pnpm
pnpm add ind-utils-pro

# bun  
bun add ind-utils-pro

📖 Quick Start

Basic Usage

import { 
  isValidPAN, 
  isValidGST, 
  toINR, 
  calculateGST 
} from 'ind-utils-pro';

// Validate PAN
isValidPAN('ABCDE1234F'); // true

// Validate GST
isValidGST('24AAAAA0000A1Z5'); // true

// Format currency
toINR(15000); // ₹15,000.00

// Calculate tax
calculateGST(10000, 18); // 1800

React Example

import { useForm } from 'react-hook-form';
import { isValidPAN, isValidGST, isValidMobile } from 'ind-utils-pro';

export function CompanyForm() {
  const { register, handleSubmit, formState: { errors } } = useForm();

  const validatePAN = (value) => isValidPAN(value) || 'Invalid PAN';
  const validateGST = (value) => isValidGST(value) || 'Invalid GST';
  const validateMobile = (value) => isValidMobile(value) || 'Invalid Mobile';

  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      <input
        {...register('pan', { validate: validatePAN })}
        placeholder="Enter PAN"
      />
      {errors.pan && <span>{errors.pan.message}</span>}

      <input
        {...register('gst', { validate: validateGST })}
        placeholder="Enter GST"
      />
      {errors.gst && <span>{errors.gst.message}</span>}

      <input
        {...register('mobile', { validate: validateMobile })}
        placeholder="Enter Mobile"
      />
      {errors.mobile && <span>{errors.mobile.message}</span>}

      <button type="submit">Submit</button>
    </form>
  );
}

Angular Example

import { Component } from '@angular/core';
import { isValidGST, calculateGST, toINR } from 'ind-utils-pro';

@Component({
  selector: 'app-invoice',
  template: `
    <div class="invoice">
      <p *ngIf="isGstValid" class="success">GST is valid</p>
      <p>Base Amount: {{ baseAmount | currency }}</p>
      <p>GST (18%): {{ gstAmount | currency }}</p>
      <p>Total: {{ totalAmount | currency }}</p>
    </div>
  `,
})
export class InvoiceComponent {
  gst = '24AAAAA0000A1Z5';
  baseAmount = 10000;
  gstAmount = 0;
  totalAmount = 0;
  isGstValid = false;

  ngOnInit() {
    this.isGstValid = isValidGST(this.gst);
    this.gstAmount = calculateGST(this.baseAmount, 18);
    this.totalAmount = this.baseAmount + this.gstAmount;
  }
}

Node.js / Express Example

const express = require('express');
const { isValidPincode, isValidMobile, toIndianWords } = require('ind-utils-pro');

const app = express();

app.post('/api/validate', (req, res) => {
  const { pincode, mobile, amount } = req.body;

  const isPincodeValid = isValidPincode(pincode);
  const isMobileValid = isValidMobile(mobile);
  const amountInWords = toIndianWords(amount);

  res.json({
    isPincodeValid,
    isMobileValid,
    amountInWords,
    status: isPincodeValid && isMobileValid ? 'valid' : 'invalid'
  });
});

app.listen(3000, () => console.log('Server running on port 3000'));

🎯 Use Cases

1. E-Commerce Platforms

  • ✅ Validate customer PAN/GST during registration
  • ✅ Calculate and display GST in invoices
  • ✅ Format prices in multiple currencies
  • ✅ Validate payment card details
  • ✅ Track shipments with tracking number validation

2. Financial Applications

  • ✅ Bank account and IFSC code validation
  • ✅ Multi-currency conversion and formatting
  • ✅ Tax calculation and reporting
  • ✅ Payment gateway integration
  • ✅ Credit card validation with CVV/expiry

3. Business Management Systems

  • ✅ Invoice and bill number generation/validation
  • ✅ Purchase order tracking
  • ✅ GST compliance verification
  • ✅ Business document management
  • ✅ Vendor/supplier validation (PAN, GSTIN)

4. Logistics & Delivery

  • ✅ Vehicle registration number validation
  • ✅ Tracking number validation
  • ✅ Address and pincode verification
  • ✅ Delivery partner contact validation
  • ✅ Route optimization with coordinates

5. Government & Compliance

  • ✅ Aadhar, PAN, Voter ID validation
  • ✅ Passport and Driving License verification
  • ✅ GST registration validation
  • ✅ FSSAI license validation (food businesses)
  • ✅ Udyam registration verification

6. Digital Services

  • ✅ Email and URL validation
  • ✅ Password strength validation
  • ✅ JWT token validation
  • ✅ Social media handle verification
  • ✅ User registration form validation

7. Real Estate

  • ✅ Address validation and standardization
  • ✅ GPS coordinates validation
  • ✅ Property document validation
  • ✅ Payment processing with GST
  • ✅ Owner/agent contact validation

8. Education & Enrollment

  • ✅ Student email and contact validation
  • ✅ Parent/Guardian mobile verification
  • ✅ Address verification for enrollment
  • ✅ Invoice generation for fees with GST
  • ✅ Document tracking for admissions

📚 Complete API Reference

🆔 Identity & Government (9 validators)

isValidPAN(value: string): boolean                    // Pan card: ABCDE1234F
isValidGST(value: string): boolean                    // GST: 24AAAAA0000A1Z5
isValidAadhar(value: string): boolean                 // Aadhar: 12-digit number (prefix 2-9)
isValidAadharMasked(value: string): boolean           // Masked Aadhar: XXXX XXXX XXXX
isValidVoterID(value: string): boolean                // Voter ID: ABC1234567
isValidPassport(value: string): boolean               // Passport: A1234567
isValidPassportIntl(value: string): boolean           // International passport format
isValidDrivingLicense(value: string): boolean         // Driving License: Full format
isValidDrivingLicenseSimple(value: string): boolean   // Driving License: Simplified

🏦 Banking & Finance (9 validators)

isValidIFSC(value: string): boolean                   // IFSC: SBIN0001234
isValidIFSCStandard(value: string): boolean           // IFSC: Standard format
isValidMICR(value: string): boolean                   // MICR: 9-digit code
isValidBankAccount(value: string): boolean            // 9-18 digit account numbers
isValidBankAccountFormatted(value: string): boolean   // Formatted: 1234 5678 9012 3456
isValidTAN(value: string): boolean                    // TAN: AAAA01234A
isValidDIN(value: string): boolean                    // DIN: 8-digit number
isValidCIN(value: string): boolean                    // CIN: Corporate identity
isValidSwiftCode(value: string): boolean              // SWIFT: SBIN INJU 010

📞 Contact & Location (8 validators)

isValidMobile(value: string): boolean                 // Indian mobile: 10 digits (6-9 start)
isValidMobileWithCountry(value: string): boolean      // With +91: +919876543210
isValidMobileIntl(value: string): boolean             // International format
isValidPincode(value: string): boolean                // Indian postal: 6 digits
isValidPincode6Digit(value: string): boolean          // 6-digit format specifically
isValidLandline(value: string): boolean               // Landline with STD code
isValidSTDCode(value: string): boolean                // STD Code: 0XX, 0XXX, 0XXXX
isValidPhoneWithExtension(value: string): boolean     // Extension format: 040-1234 x 123

🌐 Email & Internet (7 validators)

isValidEmail(value: string): boolean                  // Basic email validation
isValidEmailStrict(value: string): boolean            // RFC 5322 compliant
isValidURL(value: string): boolean                    // URL validation (http/https optional)
isValidURLStrict(value: string): boolean              // Strict HTTPS requirement
isValidIPv4(value: string): boolean                   // IPv4: 192.168.1.1
isValidIPv6(value: string): boolean                   // IPv6: Full format
isValidIPv6Simple(value: string): boolean             // IPv6: Simplified format

🚗 Vehicle (6 validators)

isValidVehicleNo(value: string): boolean              // Registration: GJ01AB1234
isValidVehicleNoNew(value: string): boolean           // New format variant
isValidVIN(value: string): boolean                    // VIN: 17-character code
isValidChassisNumber(value: string): boolean          // Chassis number
isValidEngineNumber(value: string): boolean           // Engine number
isValidRCNumber(value: string): boolean               // RC registration number

💼 Business & Corporate (6 validators)

isValidCRN(value: string): boolean                    // Company Incorporation Number
isValidLicenseNumber(value: string): boolean          // Business license
isValidTrademark(value: string): boolean              // Trademark registration
isValidPatentNumber(value: string): boolean           // Patent number
isValidFSSAI(value: string): boolean                  // Food Safety License: 14 digits
isValidUdyam(value: string): boolean                  // Udyam Registration: UDYAM format

💳 Financial & Payment (7 validators)

isValidCreditCard(value: string): boolean             // Credit card: 13-19 digits
isValidCreditCardFormatted(value: string): boolean    // Formatted: 1234 5678 9012 3456
isValidDebitCard(value: string): boolean              // Debit card: 16 digits
isValidCardCVV(value: string): boolean                // CVV/CVC: 3-4 digits
isValidCardExpiry(value: string): boolean             // Expiry: MM/YY format
isValidIFSCWithDash(value: string): boolean           // IFSC with dash: SBIN-0001234
isValidIBAN(value: string): boolean                   // IBAN: International account

📊 Documents & Codes (8 validators)

isValidGSTInvoice(value: string): boolean             // GST Invoice: ABC12345678901234
isValidBillNumber(value: string): boolean             // Bill: BLXXXXXXXX
isValidInvoiceNumber(value: string): boolean          // Invoice: INVXXXXXXXX
isValidPurchaseOrder(value: string): boolean          // PO: POXXXXXXXX
isValidReferenceCode(value: string): boolean          // Reference: ABCXXXXXX
isValidTrackingNumber(value: string): boolean         // Tracking: Alphanumeric
isValidBarcode128(value: string): boolean             // Barcode 128 format
isValidQRCode(value: string): boolean                 // QR code string

📅 Date & Time (6 validators)

isValidDateDDMMYYYY(value: string): boolean           // DD/MM/YYYY or DD-MM-YYYY
isValidDateYYYYMMDD(value: string): boolean           // YYYY/MM/DD or YYYY-MM-DD
isValidDateDDMMYY(value: string): boolean             // DDMMYY compact format
isValidTimeHHMM(value: string): boolean               // HH:MM (24-hour)
isValidTimeHHMMSS(value: string): boolean             // HH:MM:SS
isValidTimestampISO(value: string): boolean           // ISO 8601 timestamp

🔤 Text & Format (20+ validators)

isAlphabetOnly(value: string): boolean                // Letters and spaces
isAlphabetOnlyNoSpace(value: string): boolean         // Letters only
isNumbersOnly(value: string): boolean                 // Digits only
isAlphanumeric(value: string): boolean                // Letters + numbers
isAlphanumericUnderscore(value: string): boolean      // + underscores
isAlphanumericDash(value: string): boolean            // + dashes
isValidSlug(value: string): boolean                   // URL slug: abc-def-123
isValidHexColor(value: string): boolean               // Hex color: #RRGGBB or #RGB
isValidRGBColor(value: string): boolean               // rgb(255,255,255)
isValidRGBAColor(value: string): boolean              // rgba(255,255,255,0.5)
isValidDecimalNumber(value: string): boolean          // XX.XX format
isValidDecimalAmount(value: string): boolean          // Amount with decimals
isValidPercentage(value: string): boolean             // 0-100%

🔐 Password & Security (5 validators)

isValidPasswordStrong(value: string): boolean         // 8+ chars, mixed case, digit, symbol
isValidPasswordMedium(value: string): boolean         // 8+ chars, mixed case, digit
isValidPasswordSimple(value: string): boolean         // Min 8 characters
isValidJWT(value: string): boolean                    // JWT token format
isValidBase64(value: string): boolean                 // Base64 encoding

📍 Address & Location (5 validators)

isValidAddress(value: string): boolean                // Full mailing address
isValidLatitude(value: string): boolean               // -90 to +90
isValidLongitude(value: string): boolean              // -180 to +180
isValidCoordinates(value: string): boolean            // Lat,Long pair
isValidZipCodeUS(value: string): boolean              // US ZIP or ZIP+4

📦 Product Codes (4 validators)

isValidUPC(value: string): boolean                    // UPC: 12 digits
isValidEAN(value: string): boolean                    // EAN: 13 digits
isValidISBN(value: string): boolean                   // ISBN book code
isValidGTIN(value: string): boolean                   // GTIN: 8-14 digits
isValidASIN(value: string): boolean                   // Amazon ASIN: 10-char
isValidSerialNumber(value: string): boolean           // Product serial

📱 Social Media (6 validators)

isValidTwitterHandle(value: string): boolean          // @handle (1-15 characters)
isValidInstagramHandle(value: string): boolean        // @handle (1-30 characters)
isValidFacebookID(value: string): boolean             // Numeric FB ID
isValidYoutubeChannel(value: string): boolean         // UC... format
isValidHashtag(value: string): boolean                // #hashtag format
isValidMention(value: string): boolean                // @mention format

📏 Measurements (4 validators)

isValidWeightKg(value: string): boolean               // 50kg, 50.5 kg format
isValidDistanceKm(value: string): boolean             // 100km, 100.5 km format
isValidTemperature(value: string): boolean            // 25°C, 77°F format
isValidCurrency(value: string): boolean               // ₹, $, €, ¥ format

💰 Currency & Formatting (40+ methods)

Indian Rupee Formatters

toINR(15000)                        // ₹15,000.00
toINRWithoutSymbol(15000)           // 15,000.00
toINRCompact(15000000)              // ₹1.5Cr
toINRCompact(1500000)               // ₹15L
toINRCompact(1500)                  // ₹1.5K

International Currency Formatters

toUSD(15000)                        // $15,000.00
toEUR(15000)                        // €15,000.00
toGBP(15000)                        // £15,000.00
toJPY(15000)                        // ¥15,000
toAUD(15000)                        // A$15,000.00
toCAD(15000)                        // C$15,000.00
toSGD(15000)                        // S$15,000.00
toHKD(15000)                        // HK$15,000.00
formatCurrency(15000, 'CHF', 'de') // Custom currency & locale

Number Formatting

formatDecimal(15000.5555, 2)        // 15000.56
formatNumberWithCommas(15000)       // 15,000
formatNumberWithCommasAndDecimals(15000, 2)   // 15,000.00
formatDecimalAmount(15000, 2)       // 15,000.00

Percentage Formatting

formatPercentage(0.25, 2)           // 25.00%
formatPercentageSimple(0.25)        // 25%
formatPercentageChange(100, 125, 2) // +25.00%
formatPercentageChange(100, 75, 2)  // -25.00%

Amount Operations

formatAmount(15000, '₹')            // ₹15000.00
formatAmountWithoutDecimals(15000, '$')   // $15000
formatAmountInWords(5000)           // Five Thousand Rupees Only

Tax & Discount Calculations

calculateGST(10000, 18)             // 1800 (18% tax)
calculateGST(10000)                 // 1800 (default 18%)
calculateGSTInclusive(11800, 18)    // {baseAmount: 10000, gst: 1800, total: 11800}
calculateDiscount(1000, 20)         // 200 (20% off)
calculateDiscountedAmount(1000, 20) // 800 (final price)
calculateMarkup(500, 100)           // 1000 (100% markup)
calculateMargin(1000, 500)          // 50 (50% margin)

Currency Conversion

// Convert 5000 INR to USD (1 USD = 83 INR)
convertCurrency(5000, 83, 1)        // 60.24 USD

// Convert 5000 INR to EUR (1 EUR = 90 INR)
convertCurrency(5000, 90, 1)        // 55.56 EUR

Amount Rounding

roundToNearest(15.6, 0.5)           // 15.5
roundUp(15.1, 2)                    // 15.11
roundDown(15.9, 2)                  // 15.89

Utility Functions

toIndianWords(5000)                 // Five Thousand Rupees Only
toIndianWords(1234567)              // Twelve Lakh Thirty Four Thousand...
getAmountInPaisa(100)               // 10000
getAmountInRupees(10000)            // 100
isValidAmount(500)                  // true
isValidAmount('abc')                // false
clampAmount(150, 0, 100)            // 100 (clamped to max)

🎨 Advanced Usage

Custom Pattern Validation

import { validateWithPattern } from 'ind-utils-pro';

const isPanValid = validateWithPattern('ABCDE1234F', 'PAN');
const isGstValid = validateWithPattern('24AAAAA0000A1Z5', 'GST');
const isEmailValid = validateWithPattern('[email protected]', 'EMAIL_STRICT');

Direct Pattern Access

import { REGEX } from 'ind-utils-pro';

// Use regex patterns directly
if (REGEX.PAN.test(panValue)) {
  console.log('Valid PAN');
}

// Create custom validators
const myValidator = (value) => REGEX.ALPHANUMERIC.test(value);

TypeScript Types

import { REGEX } from 'ind-utils-pro';

type PatternKey = keyof typeof REGEX;

function validate(value: string, pattern: PatternKey): boolean {
  return REGEX[pattern].test(value);
}

📊 Real-World Examples

E-Commerce Invoice

import { 
  isValidGST, 
  calculateGST, 
  formatPercentageChange,
  toINR 
} from 'ind-utils-pro';

const invoice = {
  seller: { gstin: '24AAAAA0000A1Z5' },
  items: [
    { name: 'Product 1', price: 1000, qty: 2 },
    { name: 'Product 2', price: 500, qty: 1 }
  ],
  discountPercent: 10
};

if (isValidGST(invoice.seller.gstin)) {
  const subtotal = 2500; // calculated sum
  const discount = 250;  // 10% discount
  const taxable = subtotal - discount; // 2250
  const gst = calculateGST(taxable, 18); // 405
  const total = taxable + gst; // 2655

  console.log(`Subtotal: ${toINR(subtotal)}`);
  console.log(`Discount: ${toINR(discount)}`);
  console.log(`Taxable: ${toINR(taxable)}`);
  console.log(`GST (18%): ${toINR(gst)}`);
  console.log(`Total: ${toINR(total)}`);
  console.log(`Margin: ${formatPercentageChange(subtotal, total)}`);
}

Form Validation

import {
  isValidPAN,
  isValidGST,
  isValidMobile,
  isValidEmail,
  isValidPincode
} from 'ind-utils-pro';

const formData = {
  pan: 'ABCDE1234F',
  gst: '24AAAAA0000A1Z5',
  mobile: '9876543210',
  email: '[email protected]',
  pincode: '380001'
};

const isFormValid =
  isValidPAN(formData.pan) &&
  isValidGST(formData.gst) &&
  isValidMobile(formData.mobile) &&
  isValidEmail(formData.email) &&
  isValidPincode(formData.pincode);

console.log('Form is valid:', isFormValid);

Multi-Currency Pricing

import { convertCurrency, formatCurrency } from 'ind-utils-pro';

const priceINR = 15000;
const rates = { INR: 1, USD: 83, EUR: 90, GBP: 105 };

const prices = {
  INR: priceINR,
  USD: convertCurrency(priceINR, rates.INR, rates.USD),
  EUR: convertCurrency(priceINR, rates.INR, rates.EUR),
  GBP: convertCurrency(priceINR, rates.INR, rates.GBP)
};

console.log(formatCurrency(prices.INR, 'INR'));  // ₹15,000.00
console.log(formatCurrency(prices.USD, 'USD'));  // $180.72
console.log(formatCurrency(prices.EUR, 'EUR'));  // €166.67
console.log(formatCurrency(prices.GBP, 'GBP'));  // £142.86

🧪 Testing

import { isValidPAN, isValidGST, toINR, calculateGST } from 'ind-utils-pro';

describe('Ind-Utils-Pro Validators', () => {
  test('should validate PAN correctly', () => {
    expect(isValidPAN('ABCDE1234F')).toBe(true);
    expect(isValidPAN('INVALID')).toBe(false);
  });

  test('should validate GST correctly', () => {
    expect(isValidGST('24AAAAA0000A1Z5')).toBe(true);
    expect(isValidGST('INVALID')).toBe(false);
  });

  test('should format currency correctly', () => {
    expect(toINR(5000)).toBe('₹5,000.00');
    expect(toINR(0)).toBe('₹0.00');
  });

  test('should calculate GST correctly', () => {
    expect(calculateGST(10000, 18)).toBe(1800);
    expect(calculateGST(10000)).toBe(1800); // Default 18%
  });
});

🌟 Key Benefits

Zero Dependencies – Ultra-lightweight, no external packages
Production Ready – Used in production applications
Type Safe – Full TypeScript support with IntelliSense
Framework Agnostic – Works with any JavaScript framework
Indian Focused – Built for Indian business requirements
Comprehensive – 110+ patterns, 105+ methods
Easy to Use – Simple, intuitive API
Well Documented – Extensive examples and use cases
Performance – Optimized regex patterns
Tree-Shakeable – Import only what you need


📦 Bundle Size

Minified:  ~8 KB
Gzipped:   ~3 KB

🤝 Contributing

Contributions are welcome! Please feel free to submit issues and enhancement requests on GitHub.

Development

# Clone the repository
git clone https://github.com/DHRUV0021

# Install dependencies
npm install

# Build
npm run build

# Watch mode for development
npm run dev

# Run tests
npm test

📝 License

MIT © 2024 Dhruv Gorasiya

See LICENSE file for details.


💬 Support

For issues, questions, or suggestions:


🎯 Roadmap

  • [ ] Add regex pattern builder utility
  • [ ] Add batch validation methods
  • [ ] Add localization support
  • [ ] Add form integration plugins (Formik, React Hook Form)
  • [ ] Add CLI tool for testing patterns
  • [ ] Add Web version (browser-ready)
  • [ ] Add more international patterns

🙏 Acknowledgments

Built with ❤️ for the Indian developer community.

Made with ❤️ by Dhruv Gorasiya


📊 Statistics

  • 110+ Regex patterns
  • 105+ Validation & Formatting methods
  • 0 Dependencies
  • 40+ Currency formatters
  • 20+ Framework compatible

Version: 1.0.0
License: MIT
Last Updated: March 25, 2024