正则表达式匹配表达式在php中有效,但不能与javascript

时间:2018-06-04 06:20:14

标签: javascript php regex match

我有这个字符串:

$ str =“35x35”;

正则表达式函数在php中运行正常,返回true:

preg_match('/^\d*(x|X){1}\d*$/',trim($str))

但是当我将此函数转移到javascript时它不起作用并返回null:

$str.trim().match('/^\d*(x|X){1}\d*$/');

有什么问题?

3 个答案:

答案 0 :(得分:2)

删除'。在Javascript中,正则表达式文字为/而不是'

const $str = "35x35";

console.log($str.trim().match(/^\d*(x|X){1}\d*$/));

答案 1 :(得分:0)

这是一个解决方案:

var reg = /^\d*(x|X){1}\d*$/;
var isMatch = reg.test('35x35'); // return true or false

答案 2 :(得分:0)

您可以从正则表达式中省略{1},如果您不使用捕获组(x|X),则可以将其写为[xX]或仅使用不区分大小写的标记{{1 }}

你的正则表达式看起来像/i使用,如果你想要返回一个布尔值,你可以使用test

请注意,您不使用\d+x\d+$的单引号,如果您使用的let pattern匹配零个或多个数字,也会匹配单个\d*

x

或使用match检索匹配项。

let str = "35x35";
let pattern = /^\d+x\d+$/i;
console.log(pattern.test(str));