Javascript匹配不起作用
Javascript match doesn't work
本文关键字:不起作用 Javascript 更新时间:2023-09-26
我有一个字符串,正在尝试使用正则表达式提取子字符串。下面是一个示例:
var mainString = "SNOW ",
stringToMatch = 'snow',
regExp = new RegExp(stringToMatch + '[,''s][^a-zA-Z]','ig');
var match = mainString.match(regExp);
console.log(match)
给了我一个null
.
我在 regexr.com 编辑器中尝试了相同的正则表达式,它在那里匹配。我看不出我哪里出错了。有人可以帮我找到问题吗?
问题出在您的正则表达式结构中:
regExp = new RegExp(stringToMatch + '[,''s][^a-zA-Z]','ig');
[^a-zA-Z]
匹配不在集合[a-zA-Z]
中的任何字符。*它与字符串的结尾不匹配,字符串不是字符,将由 $
表示。因此,您的正则表达式将匹配"sNoW ,"
、"sNoW 1"
或 "SNOW,#"
(例如),但不会匹配 "Snow,"
或 "Snow "
。
您可能希望:
// match a non-alphabetic character or the end of the string
regExp = new RegExp(stringToMatch + '[,''s](?:[^a-z]|$)','ig');
// or
// simply match the word and then stop at a word boundary, 'b
regExp = new RegExp(stringToMatch + '''b','ig');
* 请注意,[a-zA-Z]
与 i
标志是多余的;只需使用 [a-z]
即可。
你得到的结果是正确的。SNOW 不在结果中,因为空间之后什么都没有,所以
[^a-zA-Z]
不匹配任何内容
相关文章:
- 为什么这个 .push 不起作用?(JavaScript)
- document.createelement不起作用(javascript)
- Chrome 中表格的 CSV 导出不起作用 - JavaScript/AngularJS
- 如果语句不起作用 - JavaScript
- 为什么我的动态更改链接不起作用?(Javascript)
- RPS 函数不起作用(JavaScript)
- 计时器间隔不起作用 Javascript
- 通过返回 false - 不起作用(javascript)来阻止链接打开
- Eval 不起作用 - JavaScript
- Android 浏览器 .click() 不起作用 javascript
- 为什么这段代码不起作用?Javascript
- jsFiddle显示正确,但一旦在本地运行就不起作用(Javascript)
- 带有html的Navigator不起作用javascript
- 从文本文件中提取内容不起作用 JavaScript
- 从查询字符串中获取参数;不起作用..Javascript
- regex手机验证不起作用-javascript
- if和else语句不起作用(javascript)(html)
- 更改字体大小的复选框不起作用-Javascript
- 为什么这个基本的 if 语句不起作用?JavaScript
- Timer 不起作用/ JavaScript/ innerHTML null