Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:快速字符串测试_Javascript_Regex - Fatal编程技术网

Javascript:快速字符串测试

Javascript:快速字符串测试,javascript,regex,Javascript,Regex,我想知道如何测试由特定字符串和字符组成的字符串。我已经测试过了 /translate+x | y | z/i.test('translateX')返回true /translate+x | y | z/i.test('translate')返回false /translate+x | y | z/i.test('rotateX')返回false 换句话说,我需要知道字符串是否是translateX或translateY或translateZ,但我不确定是否有/没有必要在那里转义+。另外,请确

我想知道如何测试由特定字符串和字符组成的字符串。我已经测试过了

  • /translate+x | y | z/i.test('translateX')
    返回
    true
  • /translate+x | y | z/i.test('translate')
    返回
    false
  • /translate+x | y | z/i.test('rotateX')
    返回
    false
换句话说,我需要知道字符串是否是
translateX
translateY
translateZ
,但我不确定是否有/没有必要在那里转义
+
。另外,请确实建议一个更好的全方位跨浏览器解决方案,该解决方案可以更短/更精确

我基本上想知道字符串是
translateX
还是
translateY
还是
translateZ
在一个非常短且有效的
.test()
调用中

你可以用

/^translate[XYZ]$/

正则表达式匹配的字符串等于
translateX
translateY
translateZ

  • ^
    -字符串的开头
  • 翻译
    -文字字符序列
  • [XYZ]
    -要么是
    X
    Y
    要么是
    Z
    […]
    列出单个字符备选方案的字符类)
  • $
    -字符串结尾
如果需要添加多字符替代方案,请使用替代方案:

/^translate(?:[XYZ]|3d)$/
           ^^^     ^^^^

这个正则表达式将匹配上面的3个字符串,或者
translate3d

您想要实现什么?要求是什么
\+
匹配一个文本
+
,在您的模式中,
+
是一个量词,允许在
translate
之后匹配多个
e
。我假设它是
/translate[xyz]?/I
他是什么意思感谢输入,因此,我基本上想知道字符串是
translateX
还是
translateY
还是
translateZ
,在一个非常简短而高效的
.test()
调用中。然后
/^translate[XYZ]$/.test(text)
太棒了,谢谢你提供了如此详细的答案/建议。很高兴它能为你工作。注意:如果您需要使其不区分大小写,请在末尾添加
/i
/^translate[XYZ]$/i
。实际上,我如何将3d添加到
[XYZ]
列表中?使用替代选项:
/^translate(?[XYZ]| 3d)$/
非常好,效果非常好。我希望你永远是我的朋友:)