使用 JavaScript 正则表达式查找非数字字符
在本教程中,我们将学习使用 JavaScript 正则表达式查找非数字字符。ASCII 代码"A"为 65,"a"为 97 等。现在,我们将检查如何使用 RegExp 在给定文本中查找非数字元素 (\D)。
RegExp 是一个对象,它指定用于对字符串执行搜索和替换操作或输入验证的模式。RegExp 是在 ES1 中引入的,并且完全受所有浏览器支持。
语法
非数字元素的语法是,
new RegExp("\D") 或简称为 /\D/
/\D/,是在 ES1 中引入的。它完全受所有浏览器支持。例如,Chrome、IE、Safari、Opera、FireFox 和 Edge。
RegExp 具有修饰符,如 g、i、m。"g"用于执行全局匹配,"i"用于执行不区分大小写的匹配,"m"用于执行多行匹配。
带修饰符的 \D 的语法如下,
new RegExp("\D", "g") 或简单的 /\D/g
查找非数字字符的步骤
步骤 1 - 定义一个包含一些非数字字符的字符串。
步骤 2 - 定义一个正则表达式以仅查找数字。
步骤 3 - 在字符串和正则表达式之间进行匹配。
步骤 4 - 显示结果,即非数字字符。
示例
在下面的示例中,我们使用 JavaScript 中的 match() 方法和正则表达式查找非数字字符。
<!DOCTYPE html> <html> <body> <h2>Finding non-digit characters</h2> <p>Non-digits characters: <p id = "result"></p> </p> <script> let text = "200 students qualified in the exam out of 250"; let pattern = /\D/g; let result = text.match(pattern); document.getElementById("result").innerHTML=result; </script> </body> </html>
此处,如果给定文本中存在非数字,match() 方法将返回非数字数组或返回 null。根据 match() 方法的输出,我们可以执行操作。例如,
示例
在下面的示例中,我们定义一个没有任何非数字字符的字符串,并尝试在字符串中找到非数字字符。
<!DOCTYPE html> <html> <body> <h1>Finding non-digit element</h1> <p id = "result"></p> <script> let text = "200250"; let pattern = /\D/g; let result = text.match(pattern); if(result == null){ document.getElementById("result").innerHTML= "Sorry, No non-digits are found in the text"; }else{ document.getElementById("result").innerHTML= "Non-digit characters are: " + result; } </script> </body> </html>
例如,输入文本中没有非数字字符。因此,如果执行该语句。如果输入文本包含非数字字符,则将执行其他部分。
示例
现在,我们将检查如何替换非数字字符。让我们看一个例子
<!DOCTYPE html> <html> <body> <h1>Replace non-digit character(s)</h1> <p>After replacing non-digit character(s): <p id = "result"></p> </p> <script> let text = "200 students qualified in the exam out of 250"; let pattern = /\D/g; let result = text.split(/\D/g).join(" "); document.getElementById("result").innerHTML=result; </script> </body> </html>
示例
我们还将检查另一种替换非数字字符的方法。让我们看一个例子
<!DOCTYPE html> <html> <body> <h1>Replace non-digit character(s)</h1> <p>After replacing non-digit character(s): <p id = "result"></p> </p> <script> let text = "200 students qualified in the exam out of 250"; let pattern = /\D/g; let result = text.replace(/\D/g , " "); document.getElementById("result").innerHTML=result; </script> </body> </html>
正如我们所讨论的,g 表示全局匹配。它不会在第一次出现时停止,而是会查找所有出现的情况。
希望本文能帮助您了解如何在 JavaScript 中使用 RegExp 查找非数字字符。