Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery中具有有限特殊字符的正则表达式_Javascript_Jquery_Html_Regex_Validation - Fatal编程技术网

Javascript jquery中具有有限特殊字符的正则表达式

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'); }​ 但它不起作用。“不起作用”不是对问题的有用描述 我

我想要所有字母数字数据+ 仅允许以下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');
}​
但它不起作用。

“不起作用”不是对问题的有用描述

我建议这样的常规表达:

^[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它适用于任何实现:由于
[]
范围只能包含文本,转义是多余的(每个符号都被解释为文本)。