Javascript 如何创建只接受特殊公式的正则表达式
在本文中,您将了解使用正则表达式来接受特殊公式的用法。在这里,我们将从理解在Javascript中使用正则表达式开始,然后我们将了解如何创建特殊公式的模式。正则表达式是一种用于匹配字符串中字符组合的模式。
示例1: 这个表达式接受单词和空格。
w+\s
示例 2: 该表达式接受长度为 1 或更长的数字。
d+
更多关于正则表达式 在这里 。
我们可以用以下两种方式构建正则表达式:
- 使用正则表达式字面量,它由斜杠括起的模式组成,如下所示:
const re = /a+b/;
- 或者调用RegExp对象的构造函数,如下所示:
const re = new RegExp('a+b');
特殊公式的正则表达式: 特殊公式由操作数和运算符组成。
语法:
formula = operand operator operand
其中,
operand = [0-9]
operator = [ – + * % ^ / ]
这个的一般正则表达式如下所示:
digit (operand digit)*
这里是英文的翻译:
- digit = [0-9]
operand = [ – + * % ^ / ]
- x* = 0个或多个实例
我们将使用Javascript RegExp、字符类和量词来指定公式。让我们先简单了解一下它们。
1. Javascript RegExp: 这是javascript中用于创建正则表达式的数据类型。
语法:
var RE = /pattern/flags
其中,
- 模式是用于匹配的表达式
- 标志是g = 全局匹配,i = 不区分大小写,m = 多行匹配等
2. 量词: 它表示要匹配的字符数。
语法:
n+ = one or more
n* = zero or more
3. 字符类:
这些表示字符的类型,比如数字或字母。
语法:
d : digit
\D : non-digit
\w : alphabet
\W : non-alphabet
创建只接受特定公式的正则表达式的步骤
- 使用模式创建正则表达式的新实例。
- 使用字符类和量词添加模式。
- 使用Javascript中的test()方法进行测试。
例如,要接受一个公式如 4-3+2+1, 可以在Javascript中使用表达式 ^\d+([+-]\d+)*$
。
其中,
^
: 匹配输入的开头。\d
: 数字。x+
: 匹配之前的项目“x”1次或更多次。$
: 匹配输入的结尾。[ ]
: 有效字符集,有效字符是像加号、减号等操作符。
示例1: 让我们使用 test() 方法在javascript中实现表达式 4-3+2+1 。
Javascript
<script>
const re = /^\d+([+-]\d+)*$/g;
console.log(re.test("4-3+2+1"));
</script>
输出:
true
示例 2: 让我们使用 JavaScript 在 test() 方法中实现表达式 4*5-3/2,包括 * 和 / 运算符。
Javascript
<script>
const re = /^\d+(?:[-+*/^]\d+)*$/g;
console.log(re.test("4*5-3/2"));
</script>
输出:
true
示例3: 示例1无效匹配
JavaScript
<script>
const re = /^\d+([+-]\d+)*$/g;
console.log(re.test("4-3*1/2"));
</script>
输出:
false