如何在正则表达式中使用变量,同时检查不是数字或变量的任何内容

问题描述 投票:0回答:1

我有这个 JavaScript 代码:

let separator = '.';
let fee = '10.00';
let regex = new RegExp(/^[^a-zA-Z]*\.[^a-zA-Z]*$/);

console.log( regex.test( fee ) );

如果费用包含任何非数字和/或不包含 .分隔符。

  1. 如何使正则表达式使用分隔符变量中的字符串,而不是像我目前那样直接在正则表达式中对其进行硬编码
  2. 如何更改此正则表达式来检查不是数字和分隔符的任何内容,例如!@£$%^,目前仅支持 a-zA-Z
javascript regex
1个回答
0
投票

您可以使用勾号

`
,然后使用变量文字
${separator}

let separator = '.';
let fee = '10.00';
let regex = new RegExp(`^([\\d${separator}])+$`);

console.log( regex.test( fee ) ); // True
console.log( regex.test( fee + 'abc' ) ); // False
© www.soinside.com 2019 - 2024. All rights reserved.