正则表达单个单引号或单个双引号后检查空格

时间:2017-09-20 12:54:00

标签: javascript regex angular

如果字符串中没有字母或数字,我必须使用正则表达式检查单引号或双引号。

例如:

Max's --> is valid
' --> Invalid
" --> Invalid 

所以我用了一个正则表达式

^(?=.*[\\w\\d]).+

除了允许

之外,它的效果非常好
Max" M--> Here there is space after quote which is supposed to be invalid
While Max"M M --> should be valid same goes for single quote 

我应该做些什么改变才能达到验证的条件?

示例:

应该至少有一个字母或数字字符,不允许使用特殊字符。 如果输入字符串是:

' --> Is invalid
" --> Is invalid
# --> Is invalid
^ --> Is invalid
and so on...

但是如果输入字符串是

Max's pc --> Valid
1's --> Valid
Max"s pc --> Valid
1"s --> Valid

但是如果它是

Max' --> Invalid as the word ends with '
Max" --> Invalid as the word ends with "

在这里,我不希望我的话以'或'或任何其他特殊字符结束,但是允许使用逗号,分号或句号。

请提及是否需要进一步澄清。谢谢:))

2 个答案:

答案 0 :(得分:1)

我不确定,但这可能有效:



var text = [
    "'",
    '"',
    '#',
    '^',
    "Max's pc",
    "1's",
    'Max"s pc',
    '1"s',
    "Max'",
    'Max"',
    'Max" M'
];

var expr = /([^\s\w\d]+)(?=[\w\d]+)/;

text.map(function(v) {
   console.log(v, expr.test(v)); 
});




修改

添加了更多示例



var text = [
    "Max's",
    'Max"s',
    "Max' s",
    'Max" s',
];

var expr = /([^\s\w\d]+)(?=[\w\d]+)/;

text.map(function(v) {
   console.log(v, expr.test(v)); 
});




答案 1 :(得分:1)

根据您的要求尝试此正则表达式。 的 [A-ZA-Z0-9] ['“] [\ S]

var regex = / [a-zA-Z0-9] ['“] [\ S] /;

function getValue()  {
    return document.getElementById("myinput").value;
}

function test() {
    alert(regex.test(getValue()));
}

https://jsfiddle.net/uf8z1eh3/