我正在构建一个简单的搜索,其中查询字符串可以包含通配符' *'。搜索字词可以如下:
如何在JS / jquery中完成此操作?
非常感谢您的帮助。 RNV
答案 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
等
试一试