首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex JavaScript If/Else语句

Regex JavaScript If/Else语句
EN

Stack Overflow用户
提问于 2014-11-25 11:11:14
回答 1查看 2.8K关注 0票数 0

我以前没有使用regex的经验,所以我需要你的帮助。

我有3种不同的web服务,我使用这些服务通过实时搜索来获取数据。这是我的陈述的逻辑,我正在努力实现它。

代码语言:javascript
复制
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网站,但仍然没有想出解决我的问题的可能方法。

我想有一个输入字段(搜索字段)。我有不同的三个网络服务。我有一个工作现场搜索一个web服务(carName)。它运行得很好,但我想做一个regex语句,以确定在输入搜索字段中何时输入carName或carModel,甚至是carNumber。我怎么能做到呢?

举个例子,下面是我对carName web服务的实时搜索的代码片段:

代码语言:javascript
复制
$('#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/ web语句,根据输入字符串确定它应该使用什么web服务。

根据regexr.com,carName和carModel可以从以下几个方面实现:

代码语言:javascript
复制
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789

和carNumber来自:

代码语言:javascript
复制
0123456789

购买我如何能够创建一个If/Else条件根据这一点?

有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-25 11:32:44

可能的建议:

1)仅通过这个正则表达式‘carNumber’可以跟踪输入字符串是否只包含数字(表示输入了[\d]+)。

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

3)如果没有输入上述任何应用- CarModel被输入

这就是某种意义上的例子。

代码语言:javascript
复制
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!
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27125080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档