使用JavaScript正则表达式查找括号之外的数字?
在JavaScript中,正则表达式[^0-9]用于查找括号内的字符,但不是数字。除了括号中提到的数字外,它将把文本中剩余的字符作为数组返回。
我们都知道JavaScript中的RegExp(正则表达式)。RegExp是一个对象,它指定用于对字符串执行搜索和替换操作或进行输入验证的模式。RegExp在ES1中引入,并得到所有浏览器的完全支持。
语法
非数字字符或/[^0-9]/的语法是:
new RegExp("[^0-9]") or simply /[^0-9]/
这里的/[^0-9]/,在ES1中引入。它被所有浏览器完全支持,例如Chrome、IE、Safari、Opera、Firefox和Edge。
RegExp具有修饰符,如g、i、m。“g”用于执行全局匹配,“i”用于执行不区分大小写的匹配,“m”用于执行多行匹配。
带有修饰符的\w语法,例如:
new RegExp("[^0-9]", "g") or simply /[^0-9]/g
查找括号之间不是数字的数字的步骤
步骤1 - 定义包含数字的字符串。
步骤2 - 定义括号之间不是数字的数字的正则表达式模式。
步骤3 - 使用match()方法将字符串与正则表达式模式匹配。
步骤4 - 显示匹配的数字。
现在,让我们看看如何查找括号内的字符(除了数字)。
示例
在这个例子中,我们查找括号[0, 4]之外的数字。
<!DOCTYPE html>
<html>
<body>
<h2>Digits not between the bracket</h2>
<p>Digits not in the bracket [1, 4]:
<p id = "result"></p>
</p>
<script>
let text = "1234567890";
let pattern = /[^1-4]/g;
let result = text.match(pattern);
document.getElementById("result").innerHTML = result;
</script>
</body>
</html>
示例
在下面的例子中,我们查找括号[1, 4]之外的字符。
<!DOCTYPE html>
<html>
<body>
<h2>RegExp [^1-4]</h2>
<p>Characters not in the bracket [1-4]:
<p id = "result"></p>
</p>
<script>
let text = "1234567890_Hello@$%^&65434320867042ecsceQW";
let pattern = /[^1-4]/g;
let result = text.match(pattern);
document.getElementById("result").innerHTML = result;
</script>
</body>
</html>
在这里,我们可以观察到给定的文本是0-9和"_Hello@$%^&"。但在模式中,我们提到不要打印[1-4]范围内的数字。因此,match()方法将把剩余的字符作为数组返回,否则match()方法将返回null。让我们看看另一个例子
示例
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Regular Expressions</h2>
<p id = "result"></p>
<script>
let text = "123456789";
let pattern = /[^1-9]/g;
let result = text.match(pattern);
if(result == null){
document.getElementById("result").innerHTML = "No characters found";
} else {
document.getElementById("result").innerHTML = "Characters are " + result;
}
</script>
</body>
</html>
这里,文本是1-9,模式也不是1-9。因此,match()方法将找不到文本中除1-9之外的任何字符。因此,它将返回null。然后,如果执行该语句。如果我们提供如第一个示例所示的文本,则将执行else语句。
示例
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Regular Expressions</h2>
<p id = "result">Characters not between the bracket [1, 9]: <br><br> </p>
<script>
let text = "9876543210_Hello@$%^&";
let pattern = /[^1-9]/g;
let result = text.match(pattern);
if(result == null){
document.getElementById("result").innerHTML += "No characters found";
} else {
document.getElementById("result").innerHTML += "Characters are " + result;
}
</script>
</body>
</html>
现在,我们将检查如何替换给定文本中的单词字符。为此,我们将使用另一个仅包含数字的正则表达式。我们将这个正则表达式与之前的结果匹配。让我们看一个例子
示例
在下面的例子中,我们查找括号[1, 4]之外的数字。
<!DOCTYPE html>
<html>
<body>
<h1>RegExp [^0-9]</h1>
<p>Digits not in the bracket [1,4]:
<p id = "result"></p>
</p>
<script>
let text = "1234567890_Hello@$%^&65434320867042ecsceQW";
let pattern = /[^1-4]/g;
let result = text.match(pattern);
let pattern2 = /\d/g;
document.getElementById("result").innerHTML =
JSON.stringify(result).match(pattern2);
</script>
</body>
</html>
在上面的程序中,我们首先查找括号[1, 4]之外的所有字符,然后从这组字符中查找仅包含数字的字符。
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP