我需要一些javascript特定正则表达式的帮助

时间:2017-10-15 03:11:52

标签: javascript regex

我尝试在我的javascript代码中设置正确的正则表达式,但我对此有点困惑。我的目标是在字符串中找到“旋转”的任何出现。这应该很简单,但事实上我失去了,因为我的“旋转”可以有多个结局!以下是我想用正则表达式找到的一些例子:

  • rotate5
  • rotate180
  • rotate-1
  • 旋转-270

“旋转”一词可以在我的字符串的开头或结尾处,或者甚至在中间用空格与其他单词隔开。正则表达式将用于搜索和替换功能。

有人能帮助我吗?

编辑:到目前为止我尝试了什么(可能缺少其中一些):

  • /\wrotate.*/
  • /rotate.\w*/
  • /rotate.\d/
  • /\Srotate*/

我还没有完全理解正则表达式的机制。

3 个答案:

答案 0 :(得分:2)

尝试this regex作为开始。它将返回所有出现的"旋转"数字(正数或负数)跟随"旋转"。

的字符串
/(rotate)([-]?[0-9]*)/g

以下是示例代码



var aString = ["rotate5","rotate180","rotate-1","some text rotate-270 rotate-1 more text rotate180"];
	for (var x = 0; x < 4; x++){
	    var match;
	    var regex = /(rotate)([-]?[0-9]*)/g;
	    while (match = regex.exec(aString[x])){
		console.log(match);
	    }
	}
&#13;
&#13;
&#13;

在此示例中,

match[0]给出整个匹配(例如rotate5)

match[1]提供文字&#34;旋转&#34;

match[2]在&#34;旋转&#34;

之后立即给出数字文字

如果字符串中有多个旋转蜇,这将全部返回

答案 1 :(得分:1)

如果您只是需要知道“字”是否在字符串中,那么/rotate/就可以了。

但是如果你想要在@mseifert之前或之后出现什么匹配

如果您只想将“旋转”一词替换为另一个    你可以使用字符串方法String.replacevar str = "i am rotating with rotate-90"; str.repalace('rotate','turning')'

一样使用它

为什么你的正则表达式不起作用?

/\wrotate.*/ 

表示字符串必须以caracter [a-zA-Z0-9_]开头,后跟rotate和另一个可选字符

/rotate.\w*/

meanse rotate必须后跟一个字符,其他字符必须是n ...............

答案 2 :(得分:1)

使用您的说明:

“旋转”一词可以在我的字符串的开头或结尾处,或者甚至在中间由其他单词的空格分隔。正则表达式将用于搜索和替换功能。

这个正则表达式应该做的工作:

const regex = /(^rotate|rotate$|\ {1}rotate\ {1})/gm;

您可以通过以下网站了解有关正则表达式的更多信息: