Javascript RegExp ' * ' 未按预期工作

标签 javascript jquery html regex

我有一个字符串。

var string="ghtykj";
var pattern = "t*y";

当我给出 new RegExp(pattern).test(string) 时,它返回 true(如预期)。

var pattern = "t*g";

但是这个模式也返回 true。

我原以为此模式会返回 false,因为 t*g 表示 t 后跟零个或多个字符,再后跟 g。

如果这确实是预期的行为,有人可以纠正我哪里做错了吗?

最佳答案

* 不是正则表达式中的通配符,而是量词。它与量词 {0,} 具有相同的含义,即指定它之前的表达式(在本例中为字符 t)可以出现零次或多次。

模式 t*g 并不意味着 t 后跟零个或多个字符,然后是 g。它表示零个或多个字符 t,后跟一个 g。

模式 t*g 将匹配例如 tgttttg,但也只是 g。因此,它匹配字符串开头的 g 字符。

要获得匹配 t 后跟零个或多个字符,后跟 g 的模式,您可以使用 t.*g(或 t[\w\W]*g 来处理字符串中的换行符)。

关于Javascript RegExp ' * ' 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30277184/

相关文章:

javascript - Datatable-无法使用 tabletools 将新添加的行导出到 CSV 文件

javascript - 关于更改运行 javascript 函数的上下文

javascript - 如何将表单提交的时间发送给servlet?

javascript - 为什么这个 onchange 选择选项和函数运行多个 jQuery [很困惑]

html - 如何使用 Bootstrap 将文本环绕图像?

html - 避免不同尺寸 div 的 flex-wrap 间隙?

javascript - Undefined 不是 Backbone.js 中的函数

javascript - 通过文件提交 react 表单

jquery - 你知道电话前缀的任何开源 JQuery 下拉菜单吗?

php - Jquery CSS 淡入淡出和淡出不同的 css 文件