我以前没有使用过正则表达式的经验,这就是为什么我需要您的帮助。

我有3种不同的Web服务,正在通过实时搜索来获取数据。这是我要执行的陈述的逻辑。

if(carName is entered) {
  getCarName.php?text=blablabla
} elseif (carModel is entered) {
  getCarModel.php?text=blablabla
} elseif (carNumer is entered) {
  getCarNumber.php?text=1337
}


这个想法是,如果输入carName,它可以是一个简单的字符串,例如Pontiac Firebird 2002,那么carModel可以是OHC inline-6 and a single-barrel carburetor。 carName和carModel可以包含字符和数字。 carNumber可以具有仅数字值,例如194378

我已经开始评估regexr.com网站,但仍然没有想出可能的解决方案。

我想要1个输入字段(搜索字段)。我有不同的3个Web服务。我正在对1个Web服务(carName)进行实时搜索。它工作正常,但是我想做一个正则表达式语句来查找在输入搜索字段中何时输入carName或carModel甚至是carNumber。我该怎么办?

例如,这是我实时搜索carName Web服务的代码片段:

$('#search').keyup(function() {
        var searchField = $('#search').val();
        var $update = $('#update');

        $.get("getCarName.php?text=" + searchField, function(data) {
          $update.empty();
          var vals = jQuery.parseJSON(data);

            if($.isArray(vals['Car'])) {
              $.each(vals['car'], function(k,v){
                $update.append("<li value='"+v['id']+"'><a href='#'>" + v['car_name'] + "</a></li>");
              });
            } else {
                $update.append("<li value='"+vals['car']['id']+"'><a href='#'>" + vals['car']['car_name'] + "</a></li>");
            }

        });
      });


基于上面的代码,我想创建一个if / else语句来根据输入字符串确定它应该使用哪种Web服务。

根据regexr.com,可以通过以下方式实现carName和carModel:

abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789


和carNumber来自:

0123456789


购买如何根据此条件创建If / Else条件?

可以请任何人帮我吗?

最佳答案

可能的建议:

1)您可以仅通过此正则表达式'carNumber'来跟踪输入字符串是否仅包含数字(表示输入了[\d]+)。

2)如果输入不仅包含数字,还可以创建一个数组或包含所有可能的汽车制造商名称的清单,并查看输入字符串中是否有匹配的单词。如果匹配,则按CarName搜索

3)如果以上均未应用-输入CarModel

这是一个可行的例子

var string = 'your input 2014';
var regex = /[\D]+/;

var carsArray = ["Nissan", "Pontiac", "Other one"];
function findInArray(a, s)
{
  for( var i = 0; i < a.length; ++i )
    if( a[i].indexOf( s ) >= 0 )
      return i;
  return -1;
}

if (regex.exec(string)) {
  //there are NOT only numbers
  if (findInArray(carsArray, string) == '-1') {
    //carModel entered!
  }else{
    //carName entered!
  }
} else {
  //carNumber entered!
}

10-06 14:41