在javascript中从字符串中删除Niqqud

Dor*_*rad 3 javascript regex unicode hebrew

我有这里描述的确切问题:

用r去掉希伯来语"niqqud"

一直在努力去除niqqud(用于表示元音的变音符号或区分希伯来字母的字母的替代发音).我有这个变量:sample1 < - "הֻסְמַק"

我找不到有效的方法来删除字母下面的标志.

但在我的情况下,我必须在JavaScript中执行此操作.

根据这里描述的UTF-8值表,我尝试了这个正则表达式没有成功.

nj_*_*nj_ 6

你的正则表达式只是一个小问题.请尝试以下方法:

const input = "???????";
console.log(input)
console.log(input.replace(/[\u0591-\u05C7]/g, ''));

/*
$ node index.js
???????
????
*/
Run Code Online (Sandbox Code Playgroud)


小智 5

nj_\xe2\x80\x99s 的答案很棒。

\n

只是补充一点(因为我没有\xe2\x80\x99t有足够的声誉点来直接发表评论)-

\n

[\\u0591-\\u05C7]可能是太宽泛了。请参阅此处的相关表格:https ://en.wikipedia.org/wiki/Unicode_and_HTML_for_the_Hebrew_alphabet#Compact_table

\n

059x05AX代表 t\'amim(重音/悬念标记)。\nNiqud 本身位于行05Bx和中05Cx

\n

正如 Avraham 评论的那样,如果两个单词由 makaf ( ) 连接,那么您可能会遇到问题,05BE然后删除它,您最终会得到连续的单词。

\n

如果您只想删除 t\xe2\x80\x99amim 但保留 nikud,请使用/[\\u0591-\\u05AF]/g. 如果你想避免 Avraham 提出的问题,你有 2 个选择 - 要么保留 maqaf,要么用破折号替换它:

\n
//keep the original makafim\nconst input = "\xd7\x9b\xd6\xbc\xd6\xb4\xd7\x99\xd6\xbe\xd7\x98\xd7\x95\xd6\xb9\xd7\x91"\nconsole.log(input)\nconsole.log(input.replace(/([\\u05B0-\\u05BD]|[\\u05BF-\\u05C7])/g,""));\n\n//replace makafim with dashes\nconsole.log(input.replace(/\\u05BE/g,"-").replace(/[\\u05B0-\\u05C7]/g,""))\n\n/*\n$ node index.js\n\xd7\x9b\xd6\xbc\xd6\xb4\xd7\x99\xd6\xbe\xd7\x98\xd6\xbd\xd7\x95\xd6\xb9\xd7\x91\n\xd7\x9b\xd7\x99\xd6\xbe\xd7\x98\xd7\x95\xd7\x91\n\xd7\x9b\xd7\x99-\xd7\x98\xd7\x95\xd7\x91\n*/\n
Run Code Online (Sandbox Code Playgroud)\n