【问题标题】:Javascript wrap every Hebrew word from a string in span tags excluding punctuationJavascript将字符串中的每个希伯来语单词包装在跨度标签中,不包括标点符号
【发布时间】:2018-06-26 23:19:58
【问题描述】:

标题说明了一切。我有一个字符串:

חזקתחזקת排,1,דדדדדדדמאמרמאמרמאמרמאמרשאמרשאמראדמאדמאדמאדמאדמאדמאדמאדמאדמאדמאדמאדמאדמאדמאדמננ“ענעעעעעעבבםםשבדחגדחגדחג集原הוא סיום וחותם ההמשך תפילין דמארי עלמא5 שהתחיל לומר בי"ב תמוז, יום הבר מצוה] היתה התחלתו בפסוק זה. – השייכות דפסוק זה (וחזקת והיית לאיש) לבר מצוה בפשטות היא, ע"פ הידוע6 דזה שבן שלש עשרה (דוקא) מחוייב במצוות הוא כי אז דוקא נק' בשם איש。 ךךבבבשבןשבןשבןשבןשבןשבןגגנעשנעשאאאא(ע“פפ),ממיהדגשדגשדגשדגשללללללללברגתגתברברברברברברברברברחזקתחזקתחזקתחזקתחזקתחזקתיילאלאלאלאלאלאלאלאלאלא גםללבברדבןדבןדבןדבןדבןגגגגג ברברברדבןדבןדבןדבןשנשנשנשנשנשאזשאזשאזש

如您所见,它是希伯来语,带有各种逗号和括号等。我希望用户能够单击单个单词并发生事情等。 我可以用 string.split(" ") 将每个单词包装在 span 标签中,然后循环遍历它并将 span 标签添加到每个单词,但是它保留了逗号和其他标点符号,这是一个禁忌.

我尝试使用正则表达式替换所有标点符号并将剩余的结果仅包裹在跨度标签周围(因为正则表达式不直接支持希伯来语),如下所示:Html.replace(/[^.,/# !$%\^&*;:{}=-_`~()[]\–]/g,"$&");但我对正则表达式不太好,实际上最终将每个 字符 (除了标点符号)包装在跨度中,但我想要每个完整的单词。

我可能缺少正则表达式中的一些简单内容,但不确定它是什么。 我不想使用任何外部库。

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    我假设删除带有标点符号的数字也是可以的。

    您在空格上拆分是正确的。从那里您可以使用简单的正则表达式删除非希伯来语字符。示例:

    var str = `שנה היא שאז נעשה בר דעת7, דדעת הוא במוחין, ובפרט לפי המבואר בהמאמר ד`;
    
    var words = str.split(" ");
    
    for (var i = 0; i < words.length; i++) {
      words[i] = words[i].replace(/[\x1E-\x7F]/g, '')
    }
    
    // words is now an array of words only containing Hebrew characters.
    

    正则表达式涵盖 30-127 范围内的字符。您可以通过将\x1E 和/或\x7F 更改为其他十六进制数字来更改所需的范围。 Here is a reference.

    拆分前没有进行替换的原因是因为正则表达式会替换空格。

    【讨论】:

      猜你喜欢
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2014-03-20
      • 1970-01-01
      相关资源
      最近更新 更多