在 JavaScript 中,正则表达式通常用于两个字符串方法 :
search()
和replace()
。
search() : 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
replace() : 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
一、正则表达式修饰符
修饰符 | 描述 |
---|---|
i | 搜索不区分大小写 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
m | 执行多行匹配 |
var str = "Visit Runoob!";
var n = str.search(/Runoob/i); // 6
二、正则表达式模式
- 数字:
[0-9] ==> \d
- 非数字:
[^0-9] ==> \D
- 字母:
[A-Za-z]
- 字母数字或下划线:
[A-Za-z0-9_] ==> \w
- 非字母数字或下划线:
[^a-z0-9A-Z_] ⇒ \W
- 汉子:
[\u4e00-\u9fa5]
- 空字符:
\s 包括:空格,tab ... ...
- 通配符:
. 下标点,等效于任何字符
三、使用test()
test() 方法是一个正则表达式方法。
test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
四、exec()
exec() 方法是一个正则表达式方法。
exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
五、例子:
不能输入汉字:
<input type="text" onkeyup="value=value.replace(/[\u4e00-\u9fa5]/g,'')" />
只能输入数字、字母和汉字
<input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4e00-\u9fa5]/g,'')" />
js限制input只能输入纯数字
<input type="text" class="input" />
// input框只能输入数字
$('.input').off('input').on('input',function(){
var reg = /[^\d]/g;
var val = $(this).val()
if(reg.test(val)){
$('.changetime').val(val.replace(reg,''))
}
})
可以不输入,若输入只能是正整数(>0的整数)
<input type="text" id="content" />
var reg = /^$|^[1-9]\d*$/;
$("#content").change(function() {
if (!reg.exec($("#content").val())) {
alert("请输入大于0的整数");
}
});