Javascript jquery中具有有限特殊字符的正则表达式
我想要所有字母数字数据+ 仅允许以下4个特殊字符Javascript jquery中具有有限特殊字符的正则表达式,javascript,jquery,html,regex,validation,Javascript,Jquery,Html,Regex,Validation,我想要所有字母数字数据+ 仅允许以下4个特殊字符 ' (single quote) - (hyphen) . (dot) single space 我试过这个: var userinput = $(this).val(); var pattern = [A-Za-z0-9_~\-!@#\$%\^&\*\(\)]+$ if(!pattern.test(userinput)) { alert('not a valid'); } 但它不起作用。“不起作用”不是对问题的有用描述 我
' (single quote)
- (hyphen)
. (dot)
single space
我试过这个:
var userinput = $(this).val();
var pattern = [A-Za-z0-9_~\-!@#\$%\^&\*\(\)]+$
if(!pattern.test(userinput))
{
alert('not a valid');
}
但它不起作用。“不起作用”不是对问题的有用描述
我建议这样的常规表达:
^[a-zA-Z0-9\'\-\. ]+$
^[a-zA-Z0-9\'\-\.]+$“不工作”不是对您的问题的有用描述
我建议这样的常规表达:
^[a-zA-Z0-9\'\-\. ]+$
^[a-zA-Z0-9\'\-\.]+$首先,需要将字符串括在
/
中,以将其解释为正则表达式:
var pattern = /[A-Za-z0-9_~\-!@#\$%\^&\*\(\)]+$/;
然后,您必须删除一些不允许的字符(regex匹配的字符比您指定的多):
第二个是你需要的。完整代码:
var userinput = $(this).val();
var pattern = /^[A-Za-z0-9 '.-]+$/;
if(!pattern.test(userinput))
{
alert('not a valid');
}
此外,请检查此指向的内容。首先,您需要将字符串括在
/
中,以便将其解释为正则表达式:
var pattern = /[A-Za-z0-9_~\-!@#\$%\^&\*\(\)]+$/;
然后,您必须删除一些不允许的字符(regex匹配的字符比您指定的多):
第二个是你需要的。完整代码:
var userinput = $(this).val();
var pattern = /^[A-Za-z0-9 '.-]+$/;
if(!pattern.test(userinput))
{
alert('not a valid');
}
此外,请检查此指向的内容。它以何种方式不起作用?我希望答案在“它在不应该的情况下匹配输入X”到“我的计算机在运行它时试图杀死我”之间。正则表达式对象(
模式
)的语法错误,就像模式本身一样-如果您只需要四个特殊字符,为什么会在其中包含大量的额外字符?您的正则表达式明确地允许\uu
,~
,
,@
,
,$,%
,^
,&
,*
,(
和)
但根据问题,我理解它们不应该匹配。。。你是不是从什么地方复制粘贴了那个正则表达式?还是你的问题遗漏了一些细节?在哪些方面不起作用?我希望答案在“它在不应该的情况下匹配输入X”到“我的计算机在运行它时试图杀死我”之间。正则表达式对象(模式
)的语法错误,就像模式本身一样-如果您只需要四个特殊字符,为什么会在其中包含大量的额外字符?您的正则表达式明确地允许\uu
,~
,
,@
,
,$,%
,^
,&
,*
,(
和)
但根据问题,我理解它们不应该匹配。。。你是不是从什么地方复制粘贴了那个正则表达式?或者您的问题缺少一些细节?您需要转义
@RGraham
不需要在字符类中转义/[.]/.test('some string')//false
@Vache这是唯一的JS,还是适用于任何正则表达式实现?@RGraham它适用于任何实现:由于[]
范围只能包含文本,转义是多余的(每个符号都被解释为文本)。您需要转义
@RGraham
不需要在字符类中转义/[.]/.test('some string')//false
@Vache这是唯一的JS,还是适用于任何正则表达式实现?@RGraham它适用于任何实现:由于[]
范围只能包含文本,转义是多余的(每个符号都被解释为文本)。