我想要实现的功能://判断目标字符串
var str1 = '中文1';
var str2 = '中文2';
var str3 = '中文3';
var ObjectString = '一大串中文';
//以下是我想到的笨方法
if (
    ObjectString.indexOf(str1) ||
    ObjectString.indexOf(str2) ||
    ObjectString.indexOf(str3)
   )
{
    //如果匹配成功,则执行一段代码
}
//我想一定有更好的方法,正则表达式或者其他的更酷更聪明的方法
我自己上网检索了一下,知道可以通过正则表达式实现该功能,非常抱歉耽误大家时间了,谁能给点提示?Any helps or tips will be appreciated!! 非常感谢

解决方案 »

  1.   

    <script type="text/javascript">
    var reg=/中文[123]/;
    var ObjectString = '一大串中文';
    alert(reg.test(ObjectString));
    </script>
    不明白你的中文123是啥意思啊
      

  2.   

    /(中文1|中文2|中文3)+/.test(ObjectString);
      

  3.   

    我想楼主的意思是只要str1、str2、str3中的值在ObjectString一大串字中存在的话就为true吗?
    var str1 = "aaa";
        var str2 = "中文2";
        var str3 = "中文";
        var ObjectString ="一大串中文";
        var re = new RegExp("" + str2 + "*");
        alert(re.test(ObjectString));
      

  4.   

    凑个热闹var s1='中文',s2='英文',s3='什么';
    var s=['adfs','文什么','中英','中文英文','什么what'];
    var reg=new RegExp(s1+'|'+s2+'|'+s3,'g');
    for(var i=s.length-1;i>=0;i--)alert(s[i]+'  '+reg.test(s[i]));
      

  5.   

    成了,原来我需要的功能写正则的时候不需要考虑中文还是英文的呀,下回应该果断先自己试试的,被google到的结果给迷惑住了非常感谢楼上几位的帮助,又涨姿势了!!耽误大家时间了,抱歉~ :)分数除了第一位,其余平分吧~
      

  6.   

    你可以吧对应的中文123放入一个数组里假设是a  然后定义一个方法
    function test(ObjectString){
    for(var i=0;i<a.length;i++){
    if(ObjectString.indexOf(a[i])!=-1){
    return true;
    }
    }
    return false;
    }
    试试