הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [JS] מציאת תווים בתוך מחרוזת. (https://hosts.co.il/forums/showthread.php?t=24245)

miniature 17-06-06 22:53

[JS] מציאת תווים בתוך מחרוזת.
 
יש ברשותי DIV הנקרא aaa, ואני רוצה למצוא בו את התווים d8f (אני יודע שהם אכן כתובים בו). כיצד אני יכול למצוא את התווים הנ"ל? (לוידוי המציאה אפשר נגיד לשים את הסמן לאחר התווים או לסמן את התווים)

עם innerText / innerHTML זה לא עובד, בגלל שזה מוצא את כל הטקסט שב DIV ולא קטע ממנו.

תודה לעוזרים,
יואב.

eXtaZa 18-06-06 06:19

http://www.pageresource.com/jscript/jstring1.htm
תשתמש בindexOf

miniature 18-06-06 12:08

זה עדיין לא עושה את מה שרציתי..

בניה 18-06-06 15:09

ב"ה

דוגמא:
קוד:

<script type="text/javascript">
function find()
        {
    var thediv=document.getElementById("mydiv");
    thediv.innerHTML=thediv.innerHTML.replace("d8f",'<span id="res" style="color:red;">d8f</span>');
    document.getElementById("res").focus();
    }
</script>
<input type="button" onclick="find()" value="&icirc;&ouml;&agrave;" />
<div id="mydiv">
afsadfgsdg;dsohf  sdgdasfgsdfgd dafgsdafgagsdgsdfbscvb
asdf
ag
<br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br />
<br /><br />
<br /><br />
dafg
afg
adfg
afg
d8f

</div>


miniature 18-06-06 17:03

ואם יש כמה תוצאות לחיפוש?

בניה 18-06-06 18:33

ב"ה

אפשר שהוא יצבע את כולן בבת אחת רק שאי אפשר שהוא יעשה פוקוס על כולן.

miniature 18-06-06 20:08

אני מתכוון שכל פעם שילחצו על הלחצן זה יצבע את הבא ב DIV, עד שכבר לא יהיו ותופיע הודעה נגיד..
לולאה משהו

בניה 18-06-06 20:45

ב"ה


זה לא פועל כמו שזה אמור לעבוד.(זה לא מוריד את הצבע מתוצאה הקודמת.)
מי שיכול לבדוק למה,תודה!
קוד:

<script type="text/javascript">
function find()
        {
    var thediv=document.getElementById("mydiv");
    if(thediv.innerHTML.search("d8f")>-1)
    {
    thediv.innerHTML=thediv.innerHTML.replace(/id="res" style="color:red;"/i,'');
    thediv.innerHTML=thediv.innerHTML.replace("d8f",'<span id="res" style="color:red;">d<!---->8f</span>');
    document.getElementById("res").focus();
    }
    else{alert("No match found")}
    }
</script>
<input type="button" onclick="find()" value="&ccedil;&ocirc;&ugrave;" />
<div id="mydiv">
afsadfgsdg;dsohf  sdgdasfgsdfgd dafgsdafgagsdgsdfbscvb
asdf
ag
<br />d8f
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
d8f
dafg
afg
adfg
afg
d8f
d8f
</div>


somebody 18-06-06 20:48

תשתמש בלולאת WHILE

בניה 18-06-06 20:50

ציטוט:

נכתב במקור על ידי somebody
תשתמש בלולאת WHILE

ב"ה


זה יתן את כל התוצאות במכה.
מה שאני עשיתי זה תוצאה תוצאה.
רק אם תגלה למה זה לא מוריד את הצבע מהתוצאה הקודמת אז אני אודה לך מאוד|לב|
מדובר בשורה הזו:(ניסיתי כל מיני שילובי חיפוש אפשריים)
קוד:

thediv.innerHTML=thediv.innerHTML.replace(/id="res" style="color:red;"/i,'');

miniature 18-06-06 21:13

תודה רבה!!
לא הבנתי למה זה לא מוריד את הצבע מהתוצאה הקודמת ומה <!----> אומר..

בניה 18-06-06 21:18

ב"ה


את הסימני הערה שמתי כדי לזהות את מה שכבר הקוד עבר עליו פעם.
ובאמת זה מוזר למה זה לא מוריד את הצבע.
בטח זה משהו ברור רק אני עיוור מכדי לראות אותו.

miniature 18-06-06 21:34

ציטוט:

נכתב במקור על ידי בניה
ב"ה
את הסימני הערה שמתי כדי לזהות את מה שכבר הקוד עבר עליו פעם.

כן אבל למה הפרדת את המילה? ואם נאמר ויש לי משתנה?

Rom 18-06-06 21:36

אני לא יודע JS ברמה גבוהה מאוד
אבל אתה יכול לעשות שלפני כל תוצאה כל הDIV הטקסט יהפוך לצבע שחור ואז זה יחפש ויצבע את התוצאה הבאה באדום וחוזר חלילה

בניה 18-06-06 21:56

ציטוט:

נכתב במקור על ידי miniature
כן אבל למה הפרדת את המילה? ואם נאמר ויש לי משתנה?

ב"ה


הפרדתי כדי שזה לא ימצא את זה שוב.
אפשר לעשות את אותו משחק גם לגבי משתנה.

miniature 19-06-06 14:07

כן אבל לפי מה ואיפה אני אפריד אותו?
נאמר ולמשתנה קוראים abcd654d1, להפריד אחרי ה a? ה 6? ה d? אני לא יודע..
אני פשוט לא מבין את העקרון של ההפרדה.

בניה 19-06-06 14:19

ב"ה


נגיד שאנחנו רוצים להוסיף את הסימני הערה בין התו הראשון לשני של התוצאה.
אז נעשה ככה:

קוד:

var textToFind="d8f";
var replaceWith=textToFind[0]+"<!---->"+textToFind.substr(1);
thediv.innerHTML=thediv.innerHTML.replace(textToFind,'<span id="res" style="color:red;">'+replaceWith+'</span>');


miniature 19-06-06 14:26

אבל איך זה מזהה? הרי אם בתוכן המשתנה יש '123', אחרי מה שהבאת לי זה יוציא 1 והרי יש עוד כאלה אותו הדבר בדיוק! איך זה מזהה?!

*עוד דבר, זה כותב לי undefined

בניה 19-06-06 15:12

ב"ה


אני נראה לי לא הבנתי אותך מההתחלה...

ali_napso 19-06-06 16:54

תשים פקודה לפני הif שזה צובע בשחור ואז צובע באדום.........

miniature 19-06-06 19:03

ציטוט:

נכתב במקור על ידי בניה
ב"ה


אני נראה לי לא הבנתי אותך מההתחלה...

פשוט אני רוצה שזה יחפש ערך שמאוכסן במשתנה כלשהו, ולא ערך סתם..


כל הזמנים הם GMT +2. הזמן כעת הוא 13:01.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ