【问题标题】:single and double quotes in punctuation regex标点正则表达式中的单引号和双引号
【发布时间】:2015-08-10 16:22:33
【问题描述】:

我正在尝试用 javascript 中的正则表达式匹配所有标点符号,包括单引号和双引号,但是每当我运行这个正则表达式时,我都会得到 -1 和 indexOf 这个正则表达式中的任何内容。

这就是我正在做的事情:

" '".indexOf(/[.,-\/#!$%\^&\*;:{}=\'\"\-_`~()]/g);

如果单引号在正则表达式中,为什么我的单引号索引为 -1?

【问题讨论】:

  • indexOf 不接受正则表达式,使用 match
  • @anubhava 我相信 indexOf 确实接受正则表达式。 match 返回的结果与找不到的相同。
  • @vks 即使没有它不匹配的空间。
  • @wordSmith: “我相信 indexOf 确实接受正则表达式” 你是 mistaken
  • @T.J.Crowder 显然我是。很抱歉造成混乱。

标签: javascript regex


【解决方案1】:

使用match函数,通过指定index键获取匹配元素的索引。

> " '".match(/[.,-\/#!$%\^&\*;:{}=\'\"\-_`~()]/)['index'];
1

【讨论】:

  • 我之前一直在做的事情一直返回 null,但是您的示例有效。谢谢。
【解决方案2】:

您可以使用test 针对字符串测试正则表达式模式。

示例;

var string = " '";
var containPunctuation = /[.,-\/#!$%\^&\*;:{}=\'\"\-_`~()]/g.test(string);

if (containPunctuation)
{
    //Do whatever you want
    console.log('It contains punctuation');
}

【讨论】:

  • 您能否添加详细信息以澄清您的答案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-01
  • 1970-01-01
相关资源
最近更新 更多