在字符串中搜索子字符串

时间:2010-06-09 01:34:16

标签: javascript ajax regex

我一直在文本字段"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 个答案:

答案 0 :(得分:1)

试试这个,如果它同时有U和D,它将返回'UD'。否则它将是假的。

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);

答案 1 :(得分:0)

这只会将U和D匹配在一起。尝试:

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

这将返回'U,D,U'

答案 2 :(得分:0)

我没有在测试字符串中连续看到字符UD,并且你的正则表达式只指定子字符串UD。如果您正在寻找U[anything]D,则需要使用/U.*D/gi - .*表示“零个或多个重复的任何有效字符”(不包括换行符)。这将找到UD,如果它在那里,或在你的情况下,UN2D。