使用Java Script或jquery regex验证字符串是否包含另一个字符串

时间:2015-07-31 08:43:21

标签: javascript jquery regex

我正在构建一个简单的搜索,其中查询字符串可以包含通配符' *'。搜索字词可以如下:

  • 动物
  • ANI *
  • * MAL
  • 一个*人
如果单词是' animal'

,则以上所有内容都应返回true

如何在JS / jquery中完成此操作?

非常感谢您的帮助。 RNV

5 个答案:

答案 0 :(得分:2)

字符串上的匹配很简单:

var mystring = "This is my string";
var myregex = /*some regex*/
var results = mystring.match(myregex); // you can also write the regex directly as the argument of the match method, without using any variable.

所以在你的情况下你可以:

var mystring = "animal";
var myregex = new RegExp(inputQuery.replace(/\*/g, '.*'), 'gi'); // gi stands for 'global' and 'ignorecase' when applying the regex
var results = mystring.match(myregex);

请注意.*匹配零或更多(来自* whildcard)字符,任何字符(来自.
如果您想匹配零个或多个字母,数字或下划线\w*,如果您想匹配一个或多个,请使用\w+,如果您想匹配特定数量的字母,请使用{{ 1}}(\w{x}正好匹配3个字母)。

答案 1 :(得分:1)

var str = "anim*";
var replaced = str.replace("*", ".*");
var regex = new RegExp(replaced);
var result = regex.test("animal");
console.log(result);

更改str变量以将结果设为true或false;

答案 2 :(得分:0)

已实施版本 - https://jsfiddle.net/dpoqnacv/1/

CREATE OR REPLACE TYPE Typename3 AS OBJECT ( 
  eno number, 
  ename varchar2(500), 
  esal number);

SHOW ERRORS;        

答案 3 :(得分:0)

您可以将通配符转换为RegExp并执行搜索。这是一个简单的例子。

var search = document.getElementById("search");
var result = document.getElementById("result");


result.style.color = "red";

function fsearch() {
    var str=search.value;
    str = str.replace("*", ".*") //Transform your wildcard into a RegExp
    result.innerHTML = "animal".match(new RegExp(str));
}
<label for="search">Search : <input name="search" id="search" type="text"/></label>
<input id="ok" type="button" value="ok" onclick="fsearch()"/>
Result : <div id="result"></div>

答案 4 :(得分:0)

不错的答案,但我认为使用.test();

更容易
In [161]:
df['log return'] = np.log(df['close']).diff()
df

Out[161]:
  exchange       date         close  log return
0      DAX 2015-07-28  11173.910156         NaN
1      DAX 2015-07-27  11056.400391   -0.010572
2      DAX 2015-07-24  11347.450195    0.025984
3      DAX 2015-07-23  11512.110352    0.014406

试一试