درخواست یک کد برای جایگزینی کلمات
سلام به استادان گرامی
من گیر یه مشکل افتادم و یه کدی نیاز دارم که :
مثلا یک فیلد داریم که اگر متنی رو توش بنویسیم و روی دکمه ای کلیک کنیم در صورت وجود مثلا کلمه فارس اونو با پارس جایگزین کنه و توی یک فیلد دیگه بده
اینو هم بگم که می خوام چندین کلمه رو با کلمه های دیگه جایگزین کنم
تورو خدا کمکم کنید
اصلا با جاوااسکریپت امکان پذیره ؟
+ هر کس کار منو راه بندازه لوگو با لینک سایتش رو توی parslook.ir میزارم
خدایی لازم دارم
پیشاپیش تشکر از همکاریتون
نقل قول: درخواست یک کد برای جایگزینی کلمات
شما اول تو یه آبجکت تعریف کنید و تو اون مقادیری که میخوایید با هم عوض بشه رو بزارید.
var changes = {
'فارس':'پارس',
'یه چیز':'یه چیز دیگه'
}
با این تابع هم اونارو عوض کیند
function replaceWords (replaceString) {
for (var word in changes) {
replaceString = replaceString.replace(new RegExp(word, 'g'), changes[word]);
}
return replaceString;
}
نقل قول: درخواست یک کد برای جایگزینی کلمات
فقط میشه بگید که اینو باید چه جوری به فیلدم متصل کنم ؟
ببخشید تازه واردم توی جاوااسکریپت
اگه میشه کده کامل رو بزارید ممنون میشم
نقل قول: درخواست یک کد برای جایگزینی کلمات
شما یه نمونه html با فیلدها و دکمههاتون بزارید.
نقل قول: درخواست یک کد برای جایگزینی کلمات
فرمش اینجوری باشه :
<textarea>
</textarea>
<button>نمایش</button>
<textarea>
</textarea>
+ من یکی رو به یه روش دیگه درست کردم ولی به دلیل اینکه کلمات زیاد بود کم میاورد
اینم کم میاره یا نه ؟
نقل قول: درخواست یک کد برای جایگزینی کلمات
کد HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style></style>
</head>
<body>
<textarea id='txt1'></textarea>
<button onclick='replaceWords()'>نمایش</button>
<textarea id='txt2'></textarea>
<script>
var changes = {
// some data here
}
function replaceWords (rep) {
var replaceString = document.getElementById('txt1').value;
for (var word in changes) {
replaceString = replaceString.replace(new RegExp(word, 'g'), changes[word]);
}
document.getElementById('txt2').value = replaceString;
}
</script>
</body>
</html>
نقل قول: درخواست یک کد برای جایگزینی کلمات
خیلی ممنون
اگه میخوای آدرس سایت و لوگوت رو بده بزارم توی parslook.ir
نقل قول: درخواست یک کد برای جایگزینی کلمات
فقط
کد های این شکلی رو نمیتونه با چیزه دیگه جایگزین کنه ؟
این شکلی : [something]
چون امتحان کردم نشد :ناراحت:
راه حل داره ؟
نقل قول: درخواست یک کد برای جایگزینی کلمات
منظورتون این شکلیه
['فارس', 'پارس'];
نقل قول: درخواست یک کد برای جایگزینی کلمات
نه اینجوری :
'[pars]':'fars';
نقل قول: درخواست یک کد برای جایگزینی کلمات
کد HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style></style>
</head>
<body>
<textarea id='txt1'></textarea>
<button onclick='replaceWords()'>نمایش</button>
<textarea id='txt2'></textarea>
<script>
var changes = {
'[fars]': 'parse',
'[something]': 'something else'
}
function replaceWords (rep) {
var replaceString = document.getElementById('txt1').value;
for (var wd in changes) {
var word = wd.replace(/(\[|\])/g, "");
replaceString = replaceString.replace(new RegExp(word, 'g'), changes[wd]);
}
document.getElementById('txt2').value = replaceString;
}
</script>
</body>
</html>
نقل قول: درخواست یک کد برای جایگزینی کلمات
نه
معلومه که متوجه منظورم نشدین
همون کده اول درست تره شما اگه کد زیر رو توی کد اول بزارید می فهمین چی میگم
'[fars]': 'pars'
تو فیلد دوم این میاد :
[parsparsparspars]
که اشتباهه باید این بیاد :
pars
نقل قول: درخواست یک کد برای جایگزینی کلمات
هنوزم متوجه نشدم. شما اگه کدهای بالا رو تو یه فایل html ذخیره کنید و با مرورگر باز کنید و توی فیلد اول بنویسید fars ، تو فیلد دوم مینویسه parse؟؟
نقل قول: درخواست یک کد برای جایگزینی کلمات
http://parslook.ir/up/Untitled-4.html
من کده زیر رو در این آدرس گذاشتم :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<textarea id='txt1'></textarea>
<button onclick='replaceWords()'>نمایش</button>
<textarea id='txt2'></textarea>
<script>
var changes = {
'[fars]': 'pars',
}
function replaceWords (rep) {
var replaceString = document.getElementById('txt1').value;
for (var word in changes) {
replaceString = replaceString.replace(new RegExp(word, 'g'), changes[word]);
}
document.getElementById('txt2').value = replaceString;
}
</script>
</body>
</html>
خوب اگه بنویسم [fars] باید چی بیاد به نظر شما ؟
خوب باید بنویسه pars
ولی بزنید [fars] و ببینید چی میشه
نقل قول: درخواست یک کد برای جایگزینی کلمات
شما کدهایی که تو شماره ۱۱ گذاشتم رو ببینید. تو تابع replaceWords یه تغییراتی ایجاد کردم. ولی تو لینک شما این تغییرات دیده نمیشه.
نقل قول: درخواست یک کد برای جایگزینی کلمات
کد رو هم عوض کنم به جای pars مینویسه [pars]
من می خوام بنویسه pars
می تونید توی همون صفحه ببینید
نقل قول: درخواست یک کد برای جایگزینی کلمات
نقل قول: درخواست یک کد برای جایگزینی کلمات
می خوام دقیقا اونی رو که قرمز کردم نشون داده بشه نه چیزه دیگه ای
'[fars]': 'pars',
نقل قول: درخواست یک کد برای جایگزینی کلمات
حالا اینو امتحان کنید
کد HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style></style>
</head>
<body>
<textarea id='txt1'></textarea>
<button onclick='replaceWords()'>نمایش</button>
<textarea id='txt2'></textarea>
<script>
var changes = {
'[fars]': 'pars'
}
function replaceWords () {
var replaceString = document.getElementById('txt1').value;
for (var word in changes) {
var wrd = word.replace("[", "\\[").replace("]", "\\]");
replaceString = replaceString.replace(new RegExp(wrd, 'g'), changes[word]);
}
document.getElementById('txt2').value = replaceString;
}
</script>
</body>
</html>
نقل قول: درخواست یک کد برای جایگزینی کلمات
دمت گرم
آخر فهمیدی:لبخند: