我正在使用此正则表达式 - [^\s\da-zA-ZåäöÅäÖ]+$
过滤除 A-Z、0-9 以及瑞典语字符 ÅÄÖ
之外的任何内容>。只要字符串不以空格结尾,它就会按预期工作,并且我对需要纠正什么才能使其接受字符串(即使它们以空格结尾)感到有点困惑。 \s
在那里,但显然还不够。
我的正则表达式有什么问题?
"something #¤%&/()=?".replace(/[^\s\da-zA-ZåäöÅÄÖ]+$/, '') # => a string
"something ending with whitespace #¤%&/()=? ".replace(/[^\s\da-zA-ZåäöÅÄÖ]+$/, '')# => a string ending with space #¤%&/()=?
最佳答案
您使用的是否定字符类(“任何不是空格、数字、字母等”),因此您的正则表达式无法匹配。
从其中删除 \s
以及 $
(将匹配项与字符串末尾联系起来),它应该可以工作。
如果您确实想在字符串内保留空格并仅在末尾删除它们,请使用
"something with whitespace #¤%&/()=? ".replace(/[^\s\da-zA-ZåäöÅÄÖ]+|\s+$/g, '')
结果:
something with whitespace
关于javascript - 当字符串以空格结尾时,为什么我的正则表达式不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12973273/