javascript - 正则表达式 JavaScript If/Else 语句

标签 javascript regex

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

我有 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 和单筒化油器。 carName 和 carModel 可能包含字符和数字。 carNumber 可以具有纯数字值,例如 194378

我已经开始评估 regexr.com 网站,但仍然没有找到解决问题的可能方法。

我想要 1 个输入字段(搜索字段)。我有 3 个不同的网络服务。我正在实时搜索 1 个网络服务 (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

车号来自:

0123456789

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

有人可以帮我吗?

最佳答案

可能的建议:

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

2)如果输入不仅包含数字,您可以创建一个包含所有可能的汽车制造商名称的数组或smth,并查看输入字符串中的某些单词是否与其匹配。如果匹配,则按 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!
}

关于javascript - 正则表达式 JavaScript If/Else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27125080/

相关文章:

javascript - 通过索引从对象中获取值

javascript - 测试具有多个 Promise 的 Jest 方法

C# Regex Lazy Quantifier 不匹配预期值

regex - 从文件中读取正则表达式字符类说明符

php - 用于查找正文中带有双斜杠的内部 URL 的 MySQL 正则表达式

javascript - 我如何让 ES6 生成器等待 promise ,就像在 redux-saga 中一样?

javascript - d3 : how can I load external CSV file into data?

javascript - 如何使用 Protractor 返回数组中的 getText() 值

javascript - 从带有 trim 空格和新行的字符串中获取主题标签

javascript - 所有字母的正则表达式