为什么这个正则表达式总是返回null ?
why does this regular expression always return null?
我需要检查字符串中的classname。
我的字符串是这样的:
testing ui-li ui-li-static ui-btn-up-f ui-first-child ui-filter-hidequeue
我正在寻找ui-filter-hidequeue
的任何地方(!)在字符串。
这就是我正在尝试的。它总是返回null
,尽管我试图匹配的字符串在那里:
var classPassed = 'ui-filter-hidequeue',
classes = 'testing ui-li ui-li-static ui-btn-up-f ui-first-child ui-filter-hidequeue',
c = new RegExp('(?:'s|^)' + classPassed + '(?:'s|$)');
console.log( classes.match(c) ) // returns null
问题:
有人能告诉我我在正则表达式中做错了什么吗?
谢谢!
你需要''s
。字符串中的's
将转义不需要转义的s
,而计算结果仅为"s"
。例如,当您使用文字regexp时,反斜杠转义regexp字符;字符串也使用反斜杠来转义字符串字符。当您从字符串构建regexp时,需要考虑这两层:''
是表示'
的字符串escapey方式,然后's
是表示空白的regexp-escapey方式。
正如其他注释所示,有更好的方法来测试类的存在。
试试:
c = new RegExp('''b' + classPassed + '''b');
'b
元字符匹配单词的开头/结尾;它代表边界(如单词边界)。
相关文章:
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- php函数的ajax html$_POST值返回null
- 是否可以 document.getElementsByTagName('head')[0] ever 返回 null
- Firebase:查询返回null
- 在浅层渲染的反应组件上,Enzyme为道具返回null
- jQuery Multiselect插件返回null长度(应为0?)
- 如何处理getElementById返回Null
- JavaScript中的RegExp返回null
- Javascript 中的 RegEx 返回 Null
- 加载时的getelementbyID返回null
- 谷歌脚本在第二次调用Gmail后返回null
- Indexeddb OpenCursor在特定键值上返回null
- Ajax响应返回null
- 有没有一种方法可以判断图像src是否在javascript内部返回null
- 当JS在Chrome控制台上正常工作时,Selenium JavaScript执行器返回null
- Auth$getUser返回null,即使用户已登录(AngularFire,Firebase)
- Mongoose JS findOne总是返回null
- 为什么我的ajax调用返回null
- 当与全局标志一起使用时,Javascript Regex在后续调用中返回null
- Regex以确定该值在JS中是否有效,返回null