ورود

View Full Version : سوال: مشکل در Regular Expressions در جاوا اسکریپت



sweb
پنج شنبه 14 شهریور 1387, 00:05 صبح
با سلام من میخوام بدون از چه متنی استفاده کنم برای تابع match صحت اینو تست کنم که رشته ورودی من فقط از همین کاراکترا تشکیل شده و نه کاراکتر دیگری.


function checkString(input) {
myPattern = /[^amz ]/;
if (input.match(myPattern)) alert('true');
else alert('false');
}
checkString('a mm z');// must be true
checkString('a m z 8');//must be false

مثلا من میخوام ورودی تابع اگر متشکل از a، m، z و یا space باشه خروجی true ولی اگر حرفی جز اینها وارد این رشته بشه خروجی غلط باشه.
من از چه الگویی باید برای تابع match استفاده کنم؟
متشکر.

Lagon666
پنج شنبه 14 شهریور 1387, 05:50 صبح
<script type="text/javascript">

var str="Hello world!";
document.write(str.match("world") + "<br />");
document.write(str.match("World") + "<br />");
document.write(str.match("worlld") + "<br />");
document.write(str.match("world!"));

</script>




world
null
null
world!


(بیشتر (http://www.w3schools.com/jsref/jsref_match.asp))

sweb
پنج شنبه 14 شهریور 1387, 11:42 صبح
عزیز شما مشکل منو نفهمیدید من دنبال یک الگو واسه پترن خودم هستم!

sweb
پنج شنبه 14 شهریور 1387, 12:43 عصر
من می تونم به استفاه از :


function checkString(input) {
myPattern = /[^amz ]/;
if (!input.match(myPattern)) alert('true');
else alert('false');
}
checkString('a mm z');
checkString('a m z 8');

با استفاه از ! به نتیجه ای که میخوام برسم ولی می خوام اینو تو پترن جا بدم نه در if.
از چه الگویی استفاده کنم؟
متشکر.

Ali100
دوشنبه 25 شهریور 1387, 00:07 صبح
سلام ... نمیدونم بعد از 1 هفته به نتیجه رسیدی یا نه ولی کدی که نوشتی کاملا درسته تنها مشکل اینه که شما در تمام الگوها ( Pattern ) از ^ استفاده می کنین که همین نتیجه ای که
می خواین معکوس می کنه و برای همین در شرط خودتون ( IF ) مجبور می شین از ! استفاده
کنین . الگو همینه که نوشتی فقط ^ رو از پترن و ! رو از IF حذف کنی همه چیز درست میشه .

مثال:


javascript:var myPattern=(/[amz ]/);var input="Input For Test !!!";if(input.match(myPattern)){alert(true)}else{alert (false);}

sweb
پنج شنبه 04 مهر 1387, 03:37 صبح
سلام ... نمیدونم بعد از 1 هفته به نتیجه رسیدی یا نه ولی کدی که نوشتی کاملا درسته تنها مشکل اینه که شما در تمام الگوها ( Pattern ) از ^ استفاده می کنین که همین نتیجه ای که
می خواین معکوس می کنه و برای همین در شرط خودتون ( IF ) مجبور می شین از ! استفاده
کنین . الگو همینه که نوشتی فقط ^ رو از پترن و ! رو از IF حذف کنی همه چیز درست میشه .
سپاسگذارم ولی من اینارو تست کرده بودم جواب نمیده.

راحش اینه :



<script>
function checkString(input) {
myPattern = /^[amz ]*$/g;
if (input.match(myPattern)) alert('true');
else alert('false');
}
checkString('a mm z');
checkString('a m z 8');
</script>