PDA

View Full Version : درخواست یک کد برای جایگزینی کلمات



alirezaoshz
دوشنبه 14 مرداد 1392, 09:44 صبح
سلام به استادان گرامی
من گیر یه مشکل افتادم و یه کدی نیاز دارم که :
مثلا یک فیلد داریم که اگر متنی رو توش بنویسیم و روی دکمه ای کلیک کنیم در صورت وجود مثلا کلمه فارس اونو با پارس جایگزین کنه و توی یک فیلد دیگه بده

اینو هم بگم که می خوام چندین کلمه رو با کلمه های دیگه جایگزین کنم
تورو خدا کمکم کنید
اصلا با جاوااسکریپت امکان پذیره ؟

+ هر کس کار منو راه بندازه لوگو با لینک سایتش رو توی parslook.ir میزارم

خدایی لازم دارم
پیشاپیش تشکر از همکاریتون

jalil_gh
دوشنبه 14 مرداد 1392, 10:18 صبح
شما اول تو یه آبجکت تعریف کنید و تو اون مقادیری که میخوایید با هم عوض بشه رو بزارید.
var changes = {
'فارس':'پارس',
'یه چیز':'یه چیز دیگه'
}
با این تابع هم اونارو عوض کیند
function replaceWords (replaceString) {

for (var word in changes) {
replaceString = replaceString.replace(new RegExp(word, 'g'), changes[word]);
}

return replaceString;
}

alirezaoshz
دوشنبه 14 مرداد 1392, 10:30 صبح
فقط میشه بگید که اینو باید چه جوری به فیلدم متصل کنم ؟
ببخشید تازه واردم توی جاوااسکریپت
اگه میشه کده کامل رو بزارید ممنون میشم

jalil_gh
دوشنبه 14 مرداد 1392, 11:06 صبح
شما یه نمونه html با فیلدها و دکمه‌هاتون بزارید.

alirezaoshz
دوشنبه 14 مرداد 1392, 11:24 صبح
فرمش اینجوری باشه :




<textarea>

</textarea>

<button>نمایش</button>

<textarea>

</textarea>



+ من یکی رو به یه روش دیگه درست کردم ولی به دلیل اینکه کلمات زیاد بود کم میاورد
اینم کم میاره یا نه ؟

jalil_gh
دوشنبه 14 مرداد 1392, 11:53 صبح
<!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>

alirezaoshz
دوشنبه 14 مرداد 1392, 11:57 صبح
خیلی ممنون
اگه میخوای آدرس سایت و لوگوت رو بده بزارم توی parslook.ir

alirezaoshz
دوشنبه 14 مرداد 1392, 12:07 عصر
فقط
کد های این شکلی رو نمیتونه با چیزه دیگه جایگزین کنه ؟
این شکلی : [something]
چون امتحان کردم نشد :ناراحت:
راه حل داره ؟

jalil_gh
دوشنبه 14 مرداد 1392, 12:19 عصر
منظورتون این شکلیه
['فارس', 'پارس'];

alirezaoshz
دوشنبه 14 مرداد 1392, 12:20 عصر
نه اینجوری :




'[pars]':'fars';

jalil_gh
دوشنبه 14 مرداد 1392, 12:33 عصر
<!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>

alirezaoshz
دوشنبه 14 مرداد 1392, 12:45 عصر
نه
معلومه که متوجه منظورم نشدین
همون کده اول درست تره شما اگه کد زیر رو توی کد اول بزارید می فهمین چی میگم


'[fars]': 'pars'

تو فیلد دوم این میاد :


[parsparsparspars]

که اشتباهه باید این بیاد :

pars

jalil_gh
دوشنبه 14 مرداد 1392, 12:57 عصر
هنوزم متوجه نشدم. شما اگه کدهای بالا رو تو یه فایل html ذخیره کنید و با مرورگر باز کنید و توی فیلد اول بنویسید fars ، تو فیلد دوم مینویسه parse؟؟

alirezaoshz
دوشنبه 14 مرداد 1392, 13:02 عصر
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] و ببینید چی میشه

jalil_gh
دوشنبه 14 مرداد 1392, 13:13 عصر
شما کدهایی که تو شماره ۱۱ گذاشتم رو ببینید. تو تابع replaceWords یه تغییراتی ایجاد کردم. ولی تو لینک شما این تغییرات دیده نمیشه.

alirezaoshz
دوشنبه 14 مرداد 1392, 13:19 عصر
کد رو هم عوض کنم به جای pars مینویسه [pars]
من می خوام بنویسه pars
می تونید توی همون صفحه ببینید

jalil_gh
دوشنبه 14 مرداد 1392, 13:31 عصر
فکر کنم دارم متوجه میشم.

alirezaoshz
دوشنبه 14 مرداد 1392, 13:36 عصر
می خوام دقیقا اونی رو که قرمز کردم نشون داده بشه نه چیزه دیگه ای


'[fars]': 'pars',

jalil_gh
دوشنبه 14 مرداد 1392, 13:42 عصر
حالا اینو امتحان کنید

<!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>

alirezaoshz
دوشنبه 14 مرداد 1392, 13:46 عصر
دمت گرم
آخر فهمیدی:لبخند: