JS 正则 允许半角英数字、- (减号)、_ (下划线) 允许全角文字 英数字、记号(空格除外)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 正则 允许半角英数字、- (减号)、_ (下划线) 允许全角文字 英数字、记号(空格除外)相关的知识,希望对你有一定的参考价值。
JS正则表达式允许数字、字母、减号、下划线 和全角所有文字,包括全角符号 , 空格除外(全角,半角空格都不行)
半角的符号就_ - 可以用,别的都不可以用
还有一个 :可以换行
console.log(exp.test("_azAZ\\n010-189554\\n好啊《书名号》?全角问号\\n换行"));//true
console.log(exp.test("+"));//false
console.log(exp.test(" "));//false 参考技术A 貌似是这个节奏
不等于排序不允许的 [^\s~!@#$%\^&\*\(\)\+\|\[\]\/<>.,]
正则表达式:要么只有数字或字母数字带' - '和'_'允许但不带数字' - '和' - '
我遇到麻烦模式匹配,我试图生成模式,可以接受只有数字或字母数字与'-
'和'_
'允许但不是数字与'-
'和'-
'允许,只有'-
'和'_
'不应该被允许。
我试过下面的一个有点工作但完全正常工作。
^[a-zA-Z0-9][a-zA-Z0-9-_]+$
我试图匹配以下情况:
abcd = OK
as123 = Ok
as_as = Ok
as_12 = Ok
as-as = ok
12as = Ok
12_1as = Ok
123_12 = not Ok
12-12 = not Ok
1234 = ok
-- = not ok
__ = not ok
提前致谢
答案
这样做的工作:
var test = [
'abcd',
'as123',
'as_as',
'as_12',
'as-as',
'12as',
'12_1as',
'123_12',
'12-12',
'1234',
'--',
'__',
];
console.log(test.map(function (a) {
return a+' : '+/^(?!d+[-_]d+$)[a-z0-9]+[-_]?[a-z0-9]+$/i.test(a);
}));
另一答案
您正在寻找这样的正则表达式,它可以从负面的前瞻中受益:
^(?!d*(?:[-_]+d*)*$)[w-]+$
以上是关于JS 正则 允许半角英数字、- (减号)、_ (下划线) 允许全角文字 英数字、记号(空格除外)的主要内容,如果未能解决你的问题,请参考以下文章
[javascript] 记录一次解决输入内容控制为 半角英数字 + 限定符号问题的过程