Package Exports
- price-seprator
- price-seprator/src/price-separator.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (price-seprator) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Price Separator (جداکننده قیمت و تبدیل به حروف فارسی و انگلیسی)
این لایبرری ساده به شما کمک میکند:
- قیمتها را سه رقم سه رقم جدا کنید (مثلاً 1234567 → 1,234,567)
- عدد قیمت را به حروف فارسی + واحد پولی تبدیل کنید (مثلاً 50000 → پنجاه هزار تومان)
- عدد قیمت را به حروف انگلیسی + واحد پولی تبدیل کنید (مثلاً 50000 → fifty thousand USD)
- حروف فارسی را به عدد تبدیل کنید (مثلاً پنجاه هزار تومان → 50000)
- حروف انگلیسی را به عدد تبدیل کنید (مثلاً fifty thousand → 50000)
نصب و استفاده
کافیست فایل src/price-separator.js را در پروژه خود وارد کنید یا آن را به عنوان ماژول import/require نمایید.
استفاده در HTML ساده
<script src="src/price-separator.js"></script>
<script>
// جدا کردن سه رقمی
document.write(separatePrice(1234567)); // خروجی: 1,234,567
document.write("<br>");
// تبدیل به حروف فارسی
document.write(priceToPersianWords(1234567)); // خروجی: یک میلیون و دویست و سی و چهار هزار و پانصد و شصت و هفت تومان
</script>استفاده در Node.js
const {
separatePrice,
priceToPersianWords,
priceToEnglishWords,
persianWordsToNumber,
englishWordsToNumber
} = require("./src/price-separator");
// جدا کردن سه رقمی
console.log(separatePrice(50000)); // 50,000
// تبدیل به حروف فارسی
console.log(priceToPersianWords(50000)); // پنجاه هزار تومان
console.log(priceToPersianWords(50000, 'ریال')); // پنجاه هزار ریال
// تبدیل به حروف انگلیسی
console.log(priceToEnglishWords(50000)); // fifty thousand USD
console.log(priceToEnglishWords(50000, 'EUR')); // fifty thousand EUR
// تبدیل حروف به عدد
console.log(persianWordsToNumber('پنجاه هزار تومان')); // 50000
console.log(englishWordsToNumber('fifty thousand dollars')); // 50000استفاده در React
import {
separatePrice,
priceToPersianWords,
priceToEnglishWords,
persianWordsToNumber,
englishWordsToNumber
} from "./src/price-separator";
export default function PriceComponent({ price, text }) {
// تبدیل متن به عدد (اگر متن وارد شده باشد)
const numberFromText = text ?
(text.includes('thousand') ? englishWordsToNumber(text) : persianWordsToNumber(text)) : 0;
return (
<>
<div>قیمت: {separatePrice(price)}</div>
<div>فارسی: {priceToPersianWords(price)}</div>
<div>انگلیسی: {priceToEnglishWords(price)}</div>
{text && <div>تبدیل متن به عدد: {numberFromText}</div>}
</>
);
}استفاده در Vue
<template>
<div>
<div>قیمت: {{ separated }}</div>
<div>فارسی: {{ persian }}</div>
<div>انگلیسی: {{ english }}</div>
<div v-if="textInput">
<input v-model="textInput" placeholder="متن به حروف" />
<div>تبدیل به عدد: {{ numberFromText }}</div>
</div>
</div>
</template>
<script>
import {
separatePrice,
priceToPersianWords,
priceToEnglishWords,
persianWordsToNumber,
englishWordsToNumber
} from "./src/price-separator";
export default {
props: ["price"],
data() {
return {
textInput: "",
currency: "تومان"
};
},
computed: {
separated() {
return separatePrice(this.price);
},
persian() {
return priceToPersianWords(this.price, this.currency);
},
english() {
return priceToEnglishWords(this.price, "USD");
},
numberFromText() {
if (!this.textInput) return 0;
return this.textInput.includes('thousand') ?
englishWordsToNumber(this.textInput) :
persianWordsToNumber(this.textInput);
}
},
};
</script>استفاده در Angular
import {
separatePrice,
priceToPersianWords,
priceToEnglishWords,
persianWordsToNumber,
englishWordsToNumber
} from "./src/price-separator";
@Component({
selector: "app-price",
template: `
<div>قیمت: {{ separated }}</div>
<div>فارسی: {{ persian }}</div>
<div>انگلیسی: {{ english }}</div>
<div>
<input [(ngModel)]="textInput" placeholder="متن به حروف" />
<div *ngIf="textInput">تبدیل به عدد: {{ numberFromText }}</div>
</div>
`,
})
export class PriceComponent {
price = 1234567;
textInput = '';
currency = 'تومان';
get separated() {
return separatePrice(this.price);
}
get persian() {
return priceToPersianWords(this.price, this.currency);
}
get english() {
return priceToEnglishWords(this.price, 'USD');
}
get numberFromText() {
if (!this.textInput) return 0;
return this.textInput.includes('thousand') ?
englishWordsToNumber(this.textInput) :
persianWordsToNumber(this.textInput);
}
}مثال برای نمایش زیر اینپوت (HTML)
<input id="priceInput" type="text" />
<div id="priceText"></div>
<script src="src/price-separator.js"></script>
<script>
document.getElementById("priceInput").addEventListener("input", function (e) {
document.getElementById("priceText").innerText = priceToPersianWords(
e.target.value
);
});
</script>مثال برای نمایش همزمان عدد جداشده و حروف (HTML)
<input id="priceInput2" type="text" />
<div>عدد: <span id="priceNum"></span></div>
<div>فارسی: <span id="persianWords"></span></div>
<div>انگلیسی: <span id="englishWords"></span></div>
<script src="src/price-separator.js"></script>
<script>
document
.getElementById("priceInput2")
.addEventListener("input", function (e) {
document.getElementById("priceNum").innerText = separatePrice(
e.target.value
);
document.getElementById("persianWords").innerText = priceToPersianWords(
e.target.value
);
document.getElementById("englishWords").innerText = priceToEnglishWords(
e.target.value
);
});
</script>مثال برای تبدیل متن به عدد (HTML)
<input id="textInput" type="text" placeholder="متن به حروف (فارسی یا انگلیسی)" />
<div>عدد: <span id="numberResult"></span></div>
<script src="src/price-separator.js"></script>
<script>
document
.getElementById("textInput")
.addEventListener("input", function (e) {
const text = e.target.value;
let result = 0;
if (text.includes('thousand') ||
text.includes('hundred') ||
text.includes('million')) {
// متن انگلیسی
result = englishWordsToNumber(text);
} else {
// متن فارسی
result = persianWordsToNumber(text);
}
document.getElementById("numberResult").innerText =
result >= 0 ? separatePrice(result) : "نامعتبر";
});
</script>قابلیتها
- بدون وابستگی به فریمورک خاص
- قابل استفاده در همه پروژههای فرانتاند و بکاند
- سبک و سریع
- پشتیبانی از ورودی رشتهای و عددی
- قابل استفاده به صورت ماژول CommonJS و ESModule و همچنین بارگذاری مستقیم در HTML
- پشتیبانی از TypeScript با تعاریف تایپ
- پشتیبانی از تبدیل عدد به حروف فارسی و انگلیسی
- پشتیبانی از تبدیل حروف فارسی و انگلیسی به عدد
- پشتیبانی از واحدهای پولی مختلف (تومان، ریال، دلار، یورو و ...)
- دارای تستهای واحد برای اطمینان از صحت عملکرد
نصب از طریق npm
npm install price-sepratorیا با استفاده از yarn:
yarn add price-seprator