نمایش نتایج 1 تا 10 از 10

نام تاپیک: عبارت باقاعده در جاوااسکریپت

  1. #1

    عبارت باقاعده در جاوااسکریپت

    سلام و خسته نباشید
    چطور می شود در توابع search یا replace که عبارت با قاعده به کار برده شده از اسم یک متغیر که مقدار یک ورودی در آن است به عنوان عبارت جستجو به کار برد.
    مثلا می خواهیم عبارت مورد جست و جو چه برای جست و جو و چه برای جایگزینی را کاربر در یک ورودی وارد کند.
    برای مثال:

    var valSearch=document.getElementById('searchTxt').value;
    var txt=document.getElementById('myTxt').innerText;
    txt.search(/valSearch/i)

    ;


    ویا


    var searchVal=document.getElementById('searchVal').value;
    var replaceVal=document.getElementById('replaceVal').value;
    txt.replace(/searchVal/g , replaceVal);

    آخرین ویرایش به وسیله yyuser : شنبه 20 مرداد 1403 در 14:58 عصر

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    72
    پست
    3,578

    نقل قول: عبارت باقاعده در جاوااسکریپت

    سلام و روز خوش

    ادیتور انجمن کدهای درون تگ html رو درست نشون نمیده!
    و الان کدهای شما هم مشخص نیست که چیه.

    برای کدهای جاوااسکریپت از تگ javascript (دکمه با نوشته JS) استفاده کنین،
    و برای کدهای html هم از تگ xml (دکمه با نوشته XML)،
    یا کلا در تگ code بذارین (دکمه با نوشته #).

  3. #3

    نقل قول: عبارت باقاعده در جاوااسکریپت

    باسلام.
    من برای قسمت کدها از همین امکان (دکمه JS) ابزارها استفاده کردم ولی کد را به درستی نمایش نداد. ولی با تگ code درست شد. لطف کنید پاسخ بدید.
    متشکرم

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    72
    پست
    3,578

    نقل قول: عبارت باقاعده در جاوااسکریپت

    سلام دوباره

    برای من هنوز درست نشون نمیده - شاید با مرورگر edge مشکل داره.
    بگذریم،
    من کدهای شما رو دوباره فرمت کردم:

    var valSearch=document.getElementById('searchTxt').val  ue;
    var txt=document.getElementById('myTxt').innerText;
    txt.search(/valSearch/i);


    var searchVal=document.getElementById('searchVal').val  ue;
    var replaceVal=document.getElementById('replaceVal').v alue;
    txt.replace(/searchVal/g , replaceVal);


    در پست بعدی پاسخ میدم.

  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    72
    پست
    3,578

    نقل قول: عبارت باقاعده در جاوااسکریپت

    خب، در این خط 2 اشکال دیده میشه:
    txt.search(/valSearch/i);


    1- متد search ایندکس اولین مطابقت رو برمیگردونه و خودش به تنهایی عملی انجام نمیده،
    باید از این ایندکس استفاده کنین، مثلا برای استفاده های بعدی در جایی نگهداری کنین.

    2 - valSearch یک متغییر هست ولی /valSearch/ مقدار این متغییر رو بعنوان پترن نمیگیره،
    خود اسمش رو میگیره و مشابه "valSearch" میشه.

    اگر قرار هست مقدار یک متغییر رو در پترن استفاده کنین باید یک regex بسازین:
    var valSearch = document.getElementById('searchTxt').value;            
    var txt = document.getElementById('myTxt').innerText;
    const re = new RegExp(valSearch, 'i');
    const position = txt.search(re);






  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    72
    پست
    3,578

    نقل قول: عبارت باقاعده در جاوااسکریپت

    txt.replace(/searchVal/g , replaceVal);


    پست قبلی برای این یکی هم درست هست،
    به همون روش عمل کنین.

  7. #7

    نقل قول: عبارت باقاعده در جاوااسکریپت

    باسلام
    ممنون از توضیحاتتون
    یه سوال دیگه داشتم:
    من میخوام اندیسی که با تابع search پیدا شد رو معادل متن اون در متن اصلی رنگی بشه؟؟
    این کد رو زدم ولی خطا داره چیکار باید بکنم؟؟


    document.getElementById('txt')[position].style.color='red';
    آخرین ویرایش به وسیله yyuser : پنج شنبه 25 مرداد 1403 در 01:52 صبح

  8. #8

    نقل قول: عبارت باقاعده در جاوااسکریپت

    سلام و خسته نباشید
    برای تابع replace هم فرمودید مثل search است اما ما اینجا دو تا متغیر داریم یکی برای چیزی که پیدا میشه و یکی چیزی که قرار جایگزین بشه. ترتیب قرار گیری به چه صورته؟؟

    sTxt=document.getElementById('txtR1').value;
    rTxt=document.getElementById('txtR2').value;
    vartxt=document.getElementById('myTxt').innerText;

    constre=newRegExp(sTxt ,'i');
    constposition=txt.replace(re,rTxt);

    آخرین ویرایش به وسیله yyuser : پنج شنبه 25 مرداد 1403 در 01:52 صبح

  9. #9

    نقل قول: عبارت باقاعده در جاوااسکریپت

    نمیدونم چرا کدهام رو اینجوری نشون میده؟؟؟
    هم ابزارJS رو امتحان کردم , هم code رو ولی کدهام رو درست نشون نمیده.
    من از مرورگر فایرفاکس استفاده میکنم دلیلش میتونه این باشه؟؟

  10. #10
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    72
    پست
    3,578

    نقل قول: عبارت باقاعده در جاوااسکریپت

    نقل قول نوشته شده توسط yyuser مشاهده تاپیک
    نمیدونم چرا کدهام رو اینجوری نشون میده؟؟؟
    هم ابزارJS رو امتحان کردم , هم code رو ولی کدهام رو درست نشون نمیده.
    من از مرورگر فایرفاکس استفاده میکنم دلیلش میتونه این باشه؟؟

    سلام و روز خوش
    دلیلش این نیست که از چه مرورگری برای نوشتن پست استفاده میکنین؛
    این هست که شما از ادیتور ideتون کد رو copy/paste میکنین و اینجوری فرمت شده میاد.
    برای همین هم ادیتور اینجا اون فرمت رو کد میکنه:
    1.png
    الان اینجور بنظر میاد که بعضی جاها فاصله ها هم جا افتاده (بعد از var و const)
    باید فقط text کپی بشه و نه فرمت اون.

    در فایرفاکس برای paste کردن کد کپی شده از ادیتور ide در درون تگ راست کلیک
    و paste without formatting رو انتخاب کنین.

    در edge و chrome میشه : paste as plain text
    2.png

    در ضمن کد رو کامل بذارین (هم html هم javascript) تا بشه اجرای اون رو بررسی کرد،
    یا بهتر اینکه در JSFiddle - Code Playground بسازین.

تاپیک های مشابه

  1. پاسخ: 0
    آخرین پست: چهارشنبه 26 اردیبهشت 1397, 16:44 عصر
  2. پاسخ: 0
    آخرین پست: یک شنبه 28 تیر 1394, 18:24 عصر
  3. پاسخ: 3
    آخرین پست: سه شنبه 11 فروردین 1394, 22:43 عصر
  4. آموزش سریع وی بی اسکریپت و جاوا اسکریپت
    نوشته شده توسط odiseh در بخش طراحی وب (Web Design)
    پاسخ: 4
    آخرین پست: چهارشنبه 01 فروردین 1386, 01:20 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •