PDA

View Full Version : درخواس کمک برای ویرایش یک کد



alirezaoshz
جمعه 24 آبان 1392, 22:07 عصر
سلام
یک کد دارم ولی می خوام یه قابلیت بهش اضافه بشه !
برای دموی کد من اینجا کلیک کنید ! (http://gooloop.ir/dl/test.html)
الان اگه d رو توی اولین textarea بنویسین و روی نمایش بزنید با f عوضش میکنه ! من میخوام اینکارو انجام بده ولی به جایه اینکه فقط به f تبدیل بشه به f همراه با value اون تکست اریا پایین تبدیل بشه !
منتظر راهنمایی هاتون هستم

jalil_gh
جمعه 24 آبان 1392, 22:57 عصر
حقیقتش من متوجه نشدم منظورتون چی بود:متفکر:
میتونید بیشتر توضیح بدید؟؟

alirezaoshz
جمعه 24 آبان 1392, 23:09 عصر
این ابزار به طور مثال اگه d رو توی تکست اریا اول بنویسید به f تبدیل میکنه که فک کنم چند ماه پیش شما کدشو دادید به من !
من میخوام اگه d رو نوشتید مقدار تکست اریا پایینی رو با f بنویسه
مثلا اگه مقدار تکس اریا پایینی ( که id=text3 هست ) salam باشه وقتی روی نمایش کلیک شد توی تکست اریا دومی بنویسه fsalam !
والا نمیدونم چهجوری توضیح بدم ! میخوام هرچی توی تکست اریا پایینی هست با مقدار به دست آمده در تکست اریا دوم کنار هم نوشته شه ... :گریه:

Javidhb
شنبه 25 آبان 1392, 12:02 عصر
اون چیزی که شما میخاید اینجوری میشه:



var changes = {
'd': 'f',
'b': 'a',
's': 't'
}

function replaceWords () {

var finalString = '';
var replaceString = document.getElementById('txt1').value;
var contentText3 = document.getElementById('txt3').value;

// نمیدونم این برای چیه! مهمه؟
for (var word in changes) {
var wrd = word.replace("[", "\\[").replace("]", "\\]");
}


for(var i=0; i < replaceString.length; i++) {
if(replaceString[i] in changes)
{
finalString += changes[replaceString[i]] + contentText3;
}else{
finalString += replaceString[i];
}
}

document.getElementById('txt2').value = finalString;
}


=> یه متغیر جدید تعریف شده و بجای changes بین کاراکترهای وارد شده توی text1 حلقه رو بکار میگیریم و کاراکترها رو اونجوری که خاستی تغییر میدیم.
اگه جاییش توضیح لازم داشت، بگید...


فقط این قسمت(توی کد اصلی خودتون) :


var wrd = word.replace("[", "\\[").replace("]", "\\]");

برای چیه؟

alirezaoshz
شنبه 25 آبان 1392, 17:45 عصر
اون چیزی که شما میخاید اینجوری میشه:



var changes = {
'd': 'f',
'b': 'a',
's': 't'
}

function replaceWords () {

var finalString = '';
var replaceString = document.getElementById('txt1').value;
var contentText3 = document.getElementById('txt3').value;

// نمیدونم این برای چیه! مهمه؟
for (var word in changes) {
var wrd = word.replace("[", "\\[").replace("]", "\\]");
}


for(var i=0; i < replaceString.length; i++) {
if(replaceString[i] in changes)
{
finalString += changes[replaceString[i]] + contentText3;
}else{
finalString += replaceString[i];
}
}

document.getElementById('txt2').value = finalString;
}


=> یه متغیر جدید تعریف شده و بجای changes بین کاراکترهای وارد شده توی text1 حلقه رو بکار میگیریم و کاراکترها رو اونجوری که خاستی تغییر میدیم.
اگه جاییش توضیح لازم داشت، بگید...


فقط این قسمت(توی کد اصلی خودتون) :


var wrd = word.replace("[", "\\[").replace("]", "\\]");

برای چیه؟

نه اون مهم نیست ! چون میخواستم یه نوع کد ( که داخلش از ][ استفاده شده ) رو تبدیل به کد دیگه بکنه توی تبدیل اشکال ایجاد میشد ! و این برا رفع اونه !

alirezaoshz
شنبه 25 آبان 1392, 18:33 عصر
ممنون آقا جاوید فقط حالا یه مشکل جدید براش اتفاق افتاد !
الان فقط کلمات تک حرفی رو عوض میکنه !
مثلا اگه بخوام he رو به she تبدیل کنم نمیشه ! ولی h رو میشه به sh تبدیل کرد ! ( در کل یعنی فقط تک حرفی تبدیل میشن !

Javidhb
یک شنبه 26 آبان 1392, 16:25 عصر
html:


<textarea id='txt1'>he is a boy.</textarea>
<button id='btn' onclick='replaceWords()'>نمایش</button>
<textarea id='txt2'></textarea>
<br /><br /><br /><br /><br />
<textarea id='txt3'>gbhe</textarea>
js:


var changes = {
'he': 'she',
'ddd': 'f',
'h': 'Q',
'boy': 'girl'
}

function replaceWords()
{
var replaceString = document.getElementById('txt1').value;
var contentText3 = document.getElementById('txt3').value;
var tempChanges = {};

//ایجاد یک آبجکت جدید با توجه به مقدار وارد شده در تکست اریا 3
for(var e in changes)
{
if(changes.hasOwnProperty(e))
{
tempChanges[e] = changes[e] + contentText3;
}
}

//شروع جابجایی
for(var e in tempChanges)
{
/*
هر مورد که جایگزین میشه بین یکسری کاراکتر قرار میگیره تـــا
بعدا با موردهایی بعدی قاطی پاتی نشه
he is a boy => #%she%# is a #%girl%#
بعدا این کاراکترهای اضافی رو حذف میکنیم!
*/
var reg = new RegExp('#%.*'+e+'.*%#', 'g');

//اینم دیگه معلومه... برای جلوگیری از قاطی شدن با مواردی که قبلا جایگزین کردیم
if(reg.test(replaceString) == false)
{
replaceString = replaceString.replace(e, '#%'+tempChanges[e]+'%#');
}
}

//حذف کاراکترهای اضافی
replaceString = replaceString.replace(/#%/g, '');
replaceString = replaceString.replace(/%#/g, '');

//نمایش نتیجه
document.getElementById('txt2').value = replaceString;
}