Поиск подстроки внутри строки - PullRequest
3 голосов
/ 09 июня 2010

Я набираю строку внутри текстового поля, "KD-G435MUN2D".

Я уже использую этот код для поиска "UD" подстроки из этой строки:

<script>
     var str="KD-R435MUN2D";
     var patt1=/UD/gi;
     document.write(str.match(patt1));
</script>

Но этокод не работаетГде моя вина?


var str = $(this).val; 
var hasUD; 
var hasJD; 
var patt1 = str.match(/u/gi); 
var patt2 = str.match(/J/gi);
var patt3 = str.match(/D/gi); 

if (patt1 && patt3) { 
        hasUD = 'UD'; 
}elseif (patt2 && patt3) { 
        hasJD = 'JD'; } 

Я пробовал это, и, похоже, работает:

<script type="text/javascript">

var str="KD-R435MUN2D";
var patt1=/U.*D/g;
document.write(str.match(patt1));

</script>

Ответы [ 3 ]

1 голос
/ 09 июня 2010

Попробуйте, это вернет 'UD', если у него есть и U, и D. В противном случае это будет false.

var str = "KD-R435MUN2D";
var hasUD;
var patt1 = str.match(/U/gi);
var patt2 = str.match(/D/gi);

if (patt1 && patt2) {
    hasUD = 'UD';
} else {
    hasUD = false;
}

document.write(hasUD);
0 голосов
/ 09 июня 2010

Я не вижу символы UD последовательно в вашей тестовой строке, а ваше регулярное выражение указывает только подстроку UD.Если вы ищете U[anything]D, вам нужно будет использовать /U.*D/gi - .* означает «ноль или более повторений любого допустимого символа» (не считая перевода строки).Это найдет UD, если оно есть, или, в вашем случае, UN2D.

0 голосов
/ 09 июня 2010

Это будет соответствовать только U и D вместе. Попробуйте:

var str="KD-R435MUN2D";
var patt1=/[U|D]/gi;
alert(str.match(patt1));

Это вернет 'U, D, U'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...