JavaScript正则表达式(字符串只包含字母、空格和连字符)

19

我正在尝试创建一个正则表达式,只有在字符串中含有除字母、空格和连字符以外的任何内容时才匹配。换句话说,该字符串只能包含字母、空格和连字符。

2个回答

37

如果你正在寻找一种有效性测试:

// from string start to end, only contains '-' "whitespace" or 'a'-'z' 
someString.match(/^[-\sa-zA-Z]+$/) 
或者否定形式:
// has some invalid character not '-' "whitespace" or 'a'-'z'
someString.match(/[^-\sa-zA-Z]/) 

-2
if(someString.match(/[a-z -]+/i){
    // it's valid
}

该字符串只能包含字母、空格和连字符。 - brettkelly
将正则表达式更改为:/[^a-z -]+/i - Eimantas
2
如果您不使用 ^ 和 $ 锚定表达式,它将仅匹配子字符串。字符串的其余部分仍然可能包含不需要的字符。 - Ates Goral

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接