Regex未按预期执行
Regex not performing as expected
我有一段代码,我认为应该检测提供的字符串是否只由任意数量的空格组成,后跟逗号,后跟任意数量的空间:
if(str.match("/^[ ]*,[ ]*$/")) {
//do something
}
并且以下字符串与","不匹配。事实上,在仅由空格和单个逗号组成的字符串中,逗号前后的空格数都不匹配。我想我可能对我的语法感到困惑,只是它没有点击。
我也尝试过用这些正则表达式替换正则表达式,但没有成功:
"/^['s]*[,]['s]*$/"
"/^['s]*,['s]*$/"
"/^[ ]*[,][ ]*$/"
有什么想法吗?
您不应该引用RegExes。您正试图以这种方式匹配实际的、字面意义上的RegEx文本。尝试:
if (str.match(/^'s*,'s*$/))
{
// whatever
}
匹配任何空白字符或
if (str.match(/^ *, *$/))
仅匹配空格。
在javascript中,regex不需要加引号。。。
if(str.match(/^[ ]*,[ ]*$/)) {
//do something
}
应该是,您将字符串传递给match
而不是regex,还将's
用于space
而不是[ ]
if(str.match(/^[ ]*,[ ]*$/)) {
//do something
}
在Javascript/jQuery中,您不能在正则表达式周围加引号——删除它们,您的第一次尝试应该会很好(它在RegExr链接中这样做:http://regexr.com?35v18)
因此,您需要的是str.match(/^[ ]*,[ ]*$/)
正确答案已经公布,但如果您使用的是jQuery,您也可以使用
if ($.trim(str) === ",") {
//do something
}
(这将从开头和结尾去除所有空白,而不仅仅是空格)
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- JavaScript执行暂时挂起页面
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 当js函数's已执行
- 哪个先执行
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- HTML表单提交时未执行外部函数
- Javascript RegEx-强制执行两个最大长度
- JavaScript Regex在执行后会有不同的结果
- Regex未按预期执行
- 在Python中执行简单Javascript Regex
- 如何在Javascript中对Regex Backreference Matches执行操作
- 当我的RegEx被执行并且不匹配输入时,浏览器选项卡卡住
- 执行Regex时的意外行为.在Regex.test之后执行
- “undefined"从regex执行的值
- Javascript regex执行和替换
- Javascript Regex执行不匹配
- Regex对javascript块注释执行全局匹配
- 对Angular表达式执行regex