寻找正则表达式:软连字符或不是单词字符

时间:2011-08-24 14:13:48

标签: javascript regex soft-hyphen

我正在寻找一个正则表达式字符,这些字符不是单词字符,也不是软连字符(U + 00AD)。

这将为我提供不是单词字符的字符:

((?=\W).)

但是软连字符呢? 正确的正则表达式是什么?

3 个答案:

答案 0 :(得分:4)

你可以这样做:

[^\w\u00AD]

(不是单词或软连字符)

我创建了一个快速而脏的last_symbol()函数:

function last_symbol(str) { 
    var result = str.match(/([^\w\u00AD])[\w\u00AD]*$/); 
    return (result == null) ? null : result[1]; }

last_symbol('hello')   // null
last_symbol('hell!')   // '!'
last_symbol('hell!o$') // '$'

答案 1 :(得分:1)

您可以使用\u00AD来匹配unicode soft hypen字符,因此您应该能够否定此表达式并将其与\W组合以匹配不是单词字符而非软字符的字符连字符。

[^\u00AD\w]+

答案 2 :(得分:1)

使用正则表达式/\x{AD}/u匹配PHP中的软连字符!