PDA

View Full Version : مشکل با شناسایی کلمه new در ریگولار جاوا اسکریپت



website.expert
پنج شنبه 12 بهمن 1391, 10:56 صبح
سلام،
من میخوام ریگولاری داشته باشم که تو کل یه متن هرچی کلمه خاص new اومده بعدش space و بعدش هرچی اومده تا رسیدن به یک - رو برام انتخاب کنه مثلاً اگه داشته باشم:
new hi-ok
میخوام hi رو واسم انتخاب کنه و رنگ خاصی بهش بدم.
الان هر کاری میکنم با new مشکل داره.
ممنون میشم کمکم کنید.

Beginner2013
جمعه 13 بهمن 1391, 13:45 عصر
سلام،
من میخوام ریگولاری داشته باشم که تو کل یه متن هرچی کلمه خاص new اومده بعدش space و بعدش هرچی اومده تا رسیدن به یک - رو برام انتخاب کنه مثلاً اگه داشته باشم:
new hi-ok
میخوام hi رو واسم انتخاب کنه و رنگ خاصی بهش بدم.
الان هر کاری میکنم با new مشکل داره.
ممنون میشم کمکم کنید.

سلام.

var reg="new\\s(\\w+)-";

var str="new hi-ok";
var str2=str.match(reg);
var str3=str2[0].toString().replace("new ","").replace("-","");

document.write(str.replace(str3,"<font color='blue'>"+str3+"</font>"));

Beginner2013
جمعه 13 بهمن 1391, 13:53 عصر
بالایی را تست کردم کارکرد.اینم باید کار میکرد ولی نمی دوم چرا کار نکرد:

var reg="new\\s(\\w+)-";
var str="new hi-ok";
var str2=str.replace(reg,"new <font color='blue'>$1</font>-");
document.write(str2);

website.expert
جمعه 13 بهمن 1391, 17:14 عصر
ممنون دوست عزیز خیلی خوب بود،
فقط نمیدونم چرا به این صورت مینوسم new\\s جواب نمیده ولی اینجوری new\s درسته و کار میکنه.چه فرقی با هم دارن؟!
الان کاملاً اون چیزی که میخواستم(البته با اون چیزی که تو تاپیک اول گفته بودم یه مقدار متفاوته) به این صورت نوشتم:

/new\s(?=[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/gو درسته فقط یه مشکل داره، اونم اینه که خود کلمه new هم select میشه و تغییر رنگ پیدا میکنه.
چیکار باید بکنم که از new فقط بعنوان شرط درست بودن استفاده کنه و select نشه.
باز هم ممنون و متشکر دوست عزیز.

Reza1607
شنبه 14 بهمن 1391, 11:06 صبح
var str3=str2[0].toString().replace("new ","").replace("-","");



چرا اين كار رو كردين مي تونستين از اين استفاده كنيد
str2[1]