- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用于文本区域字段中字数统计的 jQuery 函数。此外,它排除所有用 [[[三重括号]]] 封闭的单词。它对于拉丁字符效果很好,但对于西里尔字母句子有问题。我认为错误部分与正则表达式有关:
$(field).val().replace(/\[\[\[[^\]]*\]\]\]/g, '').match(/\b/g);
两种短语的示例: http://jsfiddle.net/A3cEG/2/
我需要计算所有单词,包括西里尔字母表达,而不仅仅是拉丁语单词。如何做到这一点?
最佳答案
JavaScript(至少是最广泛使用的版本)不完全支持 Unicode。也就是说,\w
仅匹配拉丁字母、十进制数字和下划线([a-zA-Z0-9_]
),而\b
匹配单词字符和非单词字符之间的边界。
要使用拉丁语或西里尔语查找输入字符串中的所有单词,您必须执行以下操作:
.match(/[\wа-я]+/ig); // where а is the Cyrillic а.
或者如果您愿意:
.match(/[\w\u0430-\u044f]+/ig);
当然,这可能意味着您需要稍微调整代码,因为这里它将匹配所有单词而不是单词边界。请注意,[а-я]
匹配“基本西里尔字母”中的任何字母,如here所述。 。要匹配此范围之外的字母,您可以根据需要修改字符集以包含这些字母,例如要匹配俄语 Ё/ё,请使用 [а-яё]
。
另请注意,您的三括号模式可以简化为:
.replace(/\[{3}[^]]*]{3}/g, '')
或者,您可能想查看 XRegExp项目(这是一个开源项目,旨在向基本 JavaScript 正则表达式引擎添加新功能)及其 Unicode插件。
关于javascript - 使用西里尔字母的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18471159/
我在数据库中有一个具有俄罗斯值(value)观的项目。我需要做的就是附和他们,但事实证明这比预期的要困难。所有俄语字符都只是作为问号打印。 IE: ??? ? ????????对于我尝试过的每种编码,
这是我解析 JSON 的函数: func jsonParsingWeather(urlPath:String) -> NSDictionary { var utf8URLPath = urlP
我是一名优秀的程序员,十分优秀!